在MVVM中找不到事件处理程序
本文关键字:事件处理 程序 找不到 MVVM | 更新日期: 2023-09-27 17:52:57
我有一个silverlight应用程序。其中一个StackPanel将显示表格。第一列是一个复选框。
<telerik:RadGridView.Columns>
<telerik:GridViewColumn Width="80" Header="Complete" HeaderTextAlignment="Center" TextAlignment="Center">
<telerik:GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox HorizontalAlignment="Center" IsChecked="{Binding Something, Converter={StaticResource ShortToBooleanConverter}}" Checked="Complete_Checked"></CheckBox>
</DataTemplate>
</telerik:GridViewColumn.CellTemplate>
</telerik:GridViewColumn>
我想要的是,一旦我点击这个框,一个带有Y/N的消息框弹出。我在MVVM中有一个Complete_Checked
方法。但是我得到了错误
事件处理程序'Complete_Checked '在类.....上找不到
你不能使用点击事件处理程序与MVVM,你需要使用CommandBinding
或DataBinding
取决于你在做什么。
IsChecked
的复选框依赖属性。您还需要使用双向模式。这将允许UI在绑定属性发生变化时更新它。<CheckBox IsChecked="{Binding CheckBoxIsChecked, Mode=TwoWay}">
然后在object model not viewmodel
private bool _checkBoxIsChecked;
public bool CheckBoxIsChecked
{
get{ return _checkBoxIsChecked;}
set{_checkBoxIsChecked = value; OnPropertyChanged("CheckBoxIsChecked"); }
}