Нужно реализовать добавление продуктов в категории через диалоговое окно.
Я сделал такое окно:
XAML:
<Window.Resources>
<HierarchicalDataTemplate x:Key="CategoryTemplate"
ItemsSource="{Binding Path=ChildCategories}">
<CheckBox Content="{Binding Title}"
Checked="CheckBox_Checked"
Unchecked="CheckBox_Unchecked" />
</HierarchicalDataTemplate>
</Window.Resources>
<TreeView ItemsSource="{Binding Categories}"
ItemTemplate="{StaticResource CategoryTemplate}" />
Code-behind:
public partial class AddToCategoryWindow : Window
{
public List<CategoryVM> SelectedCategories { get; }
public AddToCategoryWindow()
{
InitializeComponent();
SelectedCategories = new List<CategoryVM>();
}
private void CheckBox_Checked(object sender, RoutedEventArgs e)
{
var categoryVm = (sender as CheckBox).DataContext as CategoryVM;
SelectedCategories.Add(categoryVm);
}
private void CheckBox_Unchecked(object sender, RoutedEventArgs e)
{
var categoryVm = (sender as CheckBox).DataContext as CategoryVM;
SelectedCategories.Remove(categoryVm);
}
}
А дальше вызываю это окно из VM и забираю выбранные категории из свойства SelectedCategories
:
private void AddToCategory()
{
var addToCategoryDialog = new AddToCategoryWindow() {DataContext = this};
if (addToCategoryDialog.ShowDialog() == true)
{
// Тут идет обработка продуктов
}
}
Не уверен, что этот подход правильный.
Подскажите, как нужно делать такие вещи в MVVM?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть вот такой кодВопрос: как в Main достать значение heart из ExampleTask()?
Доброго дня! Недавно начал изучать программированиеНачал с Unity3d использую C#
В чём может быть ошибка? Не считает кратчайший путь, как надо