mirror of
https://github.com/ckaczor/FloatingStatusWindow.git
synced 2026-03-11 03:51:38 -04:00
Add template project
This commit is contained in:
112
Template/SettingsWindow/ItemsSettingsPanel.xaml.cs
Normal file
112
Template/SettingsWindow/ItemsSettingsPanel.xaml.cs
Normal file
@@ -0,0 +1,112 @@
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace Template.SettingsWindow;
|
||||
|
||||
public partial class ItemsSettingsPanel
|
||||
{
|
||||
private CollectionViewSource _collectionViewSource;
|
||||
|
||||
public ItemsSettingsPanel()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public override string CategoryName => Properties.Resources.optionCategoryItems;
|
||||
|
||||
public override void LoadPanel(Window parentWindow)
|
||||
{
|
||||
base.LoadPanel(parentWindow);
|
||||
|
||||
if (_collectionViewSource == null)
|
||||
{
|
||||
_collectionViewSource = new CollectionViewSource { Source = Data.ItemEntries };
|
||||
|
||||
ItemDataGrid.ItemsSource = _collectionViewSource.View;
|
||||
}
|
||||
|
||||
_collectionViewSource.View.Refresh();
|
||||
|
||||
if (ItemDataGrid.Items.Count > 0)
|
||||
ItemDataGrid.SelectedIndex = 0;
|
||||
|
||||
SetItemButtonStates();
|
||||
}
|
||||
|
||||
private void HandleItemDataGridSelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
SetItemButtonStates();
|
||||
}
|
||||
|
||||
private void SetItemButtonStates()
|
||||
{
|
||||
AddItemButton.IsEnabled = true;
|
||||
EditItemButton.IsEnabled = ItemDataGrid.SelectedItems.Count == 1;
|
||||
DeleteItemButton.IsEnabled = ItemDataGrid.SelectedItems.Count > 0;
|
||||
}
|
||||
|
||||
private void HandleAddItemButtonClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
AddItem();
|
||||
}
|
||||
|
||||
private void HandleEditItemButtonClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
EditSelectedItem();
|
||||
}
|
||||
|
||||
private void HandleDeleteItemButtonClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
DeleteSelectedItems();
|
||||
}
|
||||
|
||||
private void HandleItemDataGridRowMouseDoubleClick(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
EditSelectedItem();
|
||||
}
|
||||
|
||||
private void AddItem()
|
||||
{
|
||||
var itemEntry = new ItemEntry { };
|
||||
|
||||
var itemWindow = new ItemWindow();
|
||||
|
||||
var result = itemWindow.Display(itemEntry, Window.GetWindow(this));
|
||||
|
||||
if (!result.HasValue || !result.Value)
|
||||
return;
|
||||
|
||||
ItemDataGrid.SelectedItem = itemEntry;
|
||||
|
||||
SetItemButtonStates();
|
||||
}
|
||||
|
||||
private void EditSelectedItem()
|
||||
{
|
||||
if (ItemDataGrid.SelectedItem == null)
|
||||
return;
|
||||
|
||||
var itemEntry = (ItemEntry)ItemDataGrid.SelectedItem;
|
||||
|
||||
var itemWindow = new ItemWindow();
|
||||
|
||||
itemWindow.Display(itemEntry, Window.GetWindow(this));
|
||||
}
|
||||
|
||||
private void DeleteSelectedItems()
|
||||
{
|
||||
if (MessageBox.Show(ParentWindow!, Properties.Resources.ConfirmDeleteItemss, Properties.Resources.ConfirmDeleteTitle, MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No) == MessageBoxResult.No)
|
||||
return;
|
||||
|
||||
var selectedItems = new ItemEntry[ItemDataGrid.SelectedItems.Count];
|
||||
|
||||
ItemDataGrid.SelectedItems.CopyTo(selectedItems, 0);
|
||||
|
||||
foreach (var itemEntry in selectedItems)
|
||||
Data.ItemEntries.Remove(itemEntry);
|
||||
|
||||
SetItemButtonStates();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user