我有一个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`
答案 0 :(得分:1)
您不能将点击事件处理程序与MVVM一起使用,您需要使用CommandBinding
或DataBinding
,具体取决于您正在做什么。
使用您的示例,您将使用数据绑定。您希望绑定到名为IsChecked
的复选框依赖项属性。您还需要使用TwoWay模式。这将允许UI在更改时更新绑定属性。
<CheckBox IsChecked="{Binding CheckBoxIsChecked, Mode=TwoWay}">
然后在您的对象模型而非 viewmodel
private bool _checkBoxIsChecked;
public bool CheckBoxIsChecked
{
get{ return _checkBoxIsChecked;}
set{_checkBoxIsChecked = value; OnPropertyChanged("CheckBoxIsChecked"); }
}