Извините, что задаю только широкий вопрос, но у меня возникли проблемы с размышлениями о том, как подойти к этой проблеме.
У меня есть отношения многие ко многим:
Product 1 --- * ProductCategory * --- Category
Категория также имеет:
Category 0..1 --- * Category (As SubCategories)
То, что я хочу видеть в виде дерева со всеми категориями и иметь возможность установить флажок для создания сущности ProductCategory.Я не знаю, как подойти к этому с MVVM.
В ASP.NET при рендеринге в виде дерева я проверял бы, был ли CategoryId узла, который я рендерил, былв моем списке «ProductCategory», если бы это было так, я бы поставил флажок и, таким образом, установил начальное состояние.
Затем я бы прикрепил обработчики событий к узлам (вместе, возможно, с некоторыми данными), чтобы прифлажок был отмечен / не отмечен, он будет добавлять / удалять соответствующую сущность из моего списка.
Проблема в том, что я пытаюсь перейти к MVVM, и иногда вижу, как именно это помогает, и в то время как некоторые вещи более аккуратныделать что-то сложное кажется болью!Например, моей первоначальной мыслью было связать Category (Root) верхнего уровня с деревом и отобразить все сущности, используя HierarchicalDataTemplate:
<sdk:TreeView Margin="0,3,30,3" ItemsSource="{Binding Categories}" Height="300">
<sdk:TreeView.ItemTemplate>
<sdk:HierarchicalDataTemplate ItemsSource="{Binding SubCategories}">
<StackPanel Orientation="Horizontal">
<CheckBox></CheckBox>
<TextBlock Text="{Binding Name}" HorizontalAlignment="Left"></TextBlock>
</StackPanel>
</sdk:HierarchicalDataTemplate>
<!---->
</sdk:TreeView.ItemTemplate>
Проблема в том, что я не могу связать свой флажок с чем-либо, потому чтоВ категории нет поля, которое я могу использовать, чтобы прикрепить его к продукту ...
Пожалуйста, может ли гуру MVVM пролить свет на это, или мне просто пойти по маршруту "события"?
Большое спасибо.