Получение отмеченных значений флажков mvvm light wpf

У меня есть один пользовательский элемент управления, где я показываю основные категории в виде кнопок из базы данных. При нажатии кнопки «Основная категория» открывается новый пользовательский элемент управления со списком элементов в соответствующей категории. Я связываю имена элементов этой категории в xaml с помощью TexbBlock, а также показываю флажки для каждого элемента для выбора. Я хочу получить значения флажков после их выбора и нажатия кнопки «Готово». Значения флажка должны соответствовать идентификатору элемента в базе данных. Как получить выбранные значения флажка.

Вот xaml для того же самого:

                        <!--<Button  Content="{Binding CategoryName}" Margin="5"/>-->
                        <TextBlock Text="{Binding SubCategoryName}" HorizontalAlignment="Center" VerticalAlignment="Top"  />                         
                        <CheckBox Grid.Row="3" />
                    </StackPanel>
                </DataTemplate>
            </ItemsControl.ItemTemplate>

Пожалуйста, предложите?

Спасибо,

Тарун


person Tarun    schedule 29.07.2010    source источник


Ответы (1)


Я думаю, что вам нужно сделать, это иметь логическое свойство ViewModel, которое называется «Проверено» (или что-то подобное), а затем привязать его к вашему флажку.

IsChecked="{Binding Checked, Mode=TwoWay}"

«Mode=TwoWay» будет означать, что когда вы отметите CheckBox, привязка автоматически обновит свойство в вашей ViewModel.

Надеюсь это поможет

person Ben    schedule 29.07.2010
comment
@Бен. Как сохранить выбранные значения флажка в коллекции после нажатия на кнопку. Пожалуйста, предложите? - person Tarun; 29.07.2010
comment
@Tarun, если у вас есть флажок, привязанный к вашей модели представления, вы можете просто перебрать коллекцию и сказать, если MyViewModel.Checked Then .... Имеет смысл? - person Ben; 29.07.2010
comment
@Бен. да. Попробую и сообщу. Спасибо - person Tarun; 29.07.2010
comment
@Бен. Я пробовал это, но не добился успеха. Пожалуйста, дополните. Спасибо. - person Tarun; 29.07.2010
comment
Что вы имеете в виду под отсутствием успеха? Можете ли вы установить точку останова для свойства Set of the Checked и убедиться, что при установке флажка значение свойства устанавливается правильно? У вас действительно есть коллекция этой ViewModel для повторения? - person Ben; 29.07.2010
comment
Да, у меня есть коллекция CategoriesItems в моей модели представления и свойство IsSelected в модели. Если я установил некоторые флажки, я получаю истинные значения, устанавливая точку останова. Как перебрать коллекцию в модели представления и сохранить выбранные значения в базе данных. Пожалуйста, предложите? - person Tarun; 29.07.2010
comment
Вот моя коллекция: private ObservableCollection‹Model.HouseholdSubCategories› _categoriesItems; public ObservableCollection‹Model.HouseholdSubCategories› CategoriesItems { get { return _categoriesItems; } установить { _categoriesItems = значение; RaisePropertyChanged(CategoriesItems); } } - person Tarun; 29.07.2010
comment
@Бен. Наконец понял. Спасибо. - person Tarun; 29.07.2010