В общем, есть такой список
<ListBox SelectedItem="{Binding SelectedItem, UpdateSourceTrigger=PropertyChanged}" ItemsSource="{Binding ItemSource}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<StackPanel>
<TextBlock Text="{Binding Title}"/>
<TextBlock Text="{Binding Description}"/>
<TextBlock Text="{Binding Price}"/>
</StackPanel>
<CheckBox IsChecked="{Binding IsCheckedVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Right"/>
<Button Command="{Binding SomeCommand}" CommandParameter="{Binding SelectedItem}" HorizontalAlignment="Right"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Как видите, в шаблоне элементов списка есть кнопка и чекбокс. Проблема только в том, что они не работают вообще. При нажатии на кнопку происходит стандартная анимация нажатия и на этом все, ничего не происходит. Чекбокс привязан к свойству IsCheckedVM, которое по умолчанию равно false, и когда нажимаешь на кнопку, то происходит определенная команда, которая за одно передает свойству IsCheckedVM состояние true и чекбокс должен быть checked. Но ничего не происходит и я не знаю почему. Даже если в конструкторе VM задать свойству IsCheckedVM = true, то чекбокс элемента все равно будет не checked. Т.е. чтобы я не делал, но я почему-то не могу воздействовать ни на кнопку, ни на чекбокс в элементе, что делать? Сами по себе эти кнопка с чекбоксом работают отлично, такая проблема возникает только если их запихнуть в шаблон, но мне это необходимо.
Сами по себе эти кнопка с чекбоксом работают отлично- это если за пределамиListBox?такая проблема возникает только если их запихнуть в шаблон- внутрьListBoxItem? Если да, то в первом варианте у вас используется VM главная (назовем ееMainViewModel), а во втором случае у вас используется VM объекта, который вы указали в привязанной коллекции (прим:public List<ItemViewModel> { get; }). То есть ваша командаSomeCommandи все другие свойства должны быть внутриItemViewModel. Если я "копаю" не в ту сторону, то предоставьте самодостаточный пример, что бы я мог проверить у себя. – EvgeniyZ Jun 10 '19 at 00:30<CheckBox.DataContext> <viewModel:MainVM/> </CheckBox.DataContext>То как бы так сказать, работает влияние на саму MainVM, т.е. например командой какое-то свойство меняется, но на саму VIEW это не влияет. По команде должно происходить определенное действие во View, но не происходит. И кстати вне шаблона если задать таким же образом кнопке с чекбоксом DataContext, они таким же образом начинают себя вести (т.е. также плохо)
– First Sin Jun 10 '19 at 19:22