mirror of
https://github.com/ckaczor/FloatingStatusWindow.git
synced 2026-03-10 12:01:38 -04:00
112 lines
2.9 KiB
C#
112 lines
2.9 KiB
C#
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();
|
|
}
|
|
} |