wpf проверено вопрос списка
Я создаю проверенный список со следующим шаблоном:
<Style x:Key="CheckBoxListStyle" TargetType="{x:Type ListBox}">
<Setter Property="SelectionMode" Value="Multiple"></Setter>
<Setter Property="ItemContainerStyle">
<Setter.Value>
<Style TargetType="{x:Type ListBoxItem}" >
<Setter Property="Margin" Value="2" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<CheckBox IsChecked="{Binding Path=xxxxxxxxxxx,RelativeSource={RelativeSource TemplatedParent},Mode=TwoWay}"> <ContentPresenter></ContentPresenter>
</CheckBox>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Setter.Value>
</Setter>
</Style>
<ListBox Style="{StaticResource CheckBoxListStyle}" ItemsSource="{Binding Path=Configuration.ProductTypes}" DisplayMemberPath="ProductName" />
Моя проблема в том, что я получаю все типы продуктов из базы данных и связываю их со списком источников. У меня есть класс продукта, который содержит список типов продуктов, к которым он принадлежит. Мне нужно установить свойство IsChecked флажков на основе списка типов продуктов продукта. Обычно мне нужно установить один или несколько флажков свойства IsChecked. Товар может принадлежать одному или нескольким типам товаров. и режим выбора является множественным выбором. если пользователь установит флажки для дополнительных типов продуктов.. мне нужно получить список всех проверенных списков и сохранить их в базе данных... это приложение MVFM WPF... любые идеи о том, как решить этот сценарий...
в шаблоне управления, что будет путь IsChecked?
Спасибо Рей
Позвольте мне просто ответить на мой вопрос: мне нужен список со списком и текстовым блоком. Контекст данных текстового блока отличается, и контекст данных флажка отличается. я имею в виду, что они получают свои данные из разных объектов. понятия не имею, как этого добиться...
2 ответа
Позвольте мне просто ответить на мой вопрос: мне нужен список со списком и текстовым блоком. Контекст данных текстового блока отличается, и контекст данных флажка отличается. я имею в виду, что они получают свои данные из разных объектов. понятия не имею, как этого добиться...
Создайте новый класс (ViewModel), который содержит два контекста данных (Model1 и Model2) и привязку данных к нему, также известный как шаблон MVVM.
Класс ProductType, который вы привязываете к ListBox, должен иметь свойство чтения / записи с именем IsSelected или IsChecked, к которому вы можете привязаться. Затем вместо использования ControlTemplate используйте DataTemplate в ListBox.ItemTemplate и привяжите свойство IsChecked CheckBox к этому свойству.