2009-11-28 3 views
0

я создаю проверил окно списка со следующим шаблоном:МОФ проверил вопрос окна списка

<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" /> 

моя проблема, я получаю все виды продукции из базы данных и привязки его к списку коробки ItemsSource. У меня есть класс продукта, который содержит список типов продуктов, к которым он принадлежит. Мне нужно установить свойство IsChecked флажков на основе списка типов продукта продукта. Обычно мне нужно установить один или несколько флажков IsChecked. продукт может принадлежать 1 или более типам продуктов. и режим выбора является мультиселективным. если пользователь проверяет флажки дополнительного типа продукта. Мне нужно получить общее количество проверочных ящиков и сохранить их в базе данных ... это приложение MVVM MVP ... любые идеи о том, как решить этот сценарий ...
в контрольной таблице, какой будет путь IsChecked?

Благодаря Rey

Позвольте мне simplyfy мой вопрос: мне нужно окно списка с флажком и TextBlock. контекст данных текстового блока отличается, а контекст поля флажка отличается. Я имею в виду, что они получают свои данные из разных объектов. не знаю, как достичь этого ...

ответ

2

Позвольте мне просто ответить на мой вопрос: мне нужно окно с номером с флажком и текстовым блоком. контекст данных текстового блока отличается от , а контекст данных с флагом - другой. я имею в виду, что они получают свои данные с разных объектов. понятия не имею, как этого добиться ...

Создать новый класс (а ViewModel), который содержит два контекста данных (Model1 и model2) и привязку данных к нему, также известный как шаблон MVVM.

0

Класс ProductType, который вы связываете с ListBox, должен иметь свойство чтения/записи, называемое IsSelected или IsChecked, с которым вы можете привязываться. Затем вместо использования ControlTemplate используйте DataTemplate в ListBox.ItemTemplate и привяжите свойство IsChecked CheckBox к этому свойству.

+0

ProductType содержит все возможные типы продуктов из базы данных. основанный на идентификаторе продукта i, я получу объект продукта из БД, который содержит подпункт типов продуктов, к которым он принадлежит. нет isselected или ischecked свойство. У меня будет имя продукта и идентификатор. я буду смотреть в datatemplate вещь .. спасибо ... – Manohar

Смежные вопросы