我正在使用MVVM创建一个UWP应用程序。在我的xaml视图中,我有一个绑定到ObservableCollection的ListView,而Object_X是一个模型。在此列表视图中绑定到我的xaml视图的Object_X的其他属性正常工作。然而,我在这个List View中有一个按钮,它的点击事件我想绑定到我在Object_X类中定义的方法,但是当我编译我的代码时,我得到一个“Object reference not set to an instance of an对象错误“。模型方法绑定在xaml中不起作用
这是我的xaml代码。 ObjectXCollection是我的视图模型中的一个属性。 IsSelected和Value是Object_X的属性,并且该绑定工作正常。 ExpandButtonHandler也被定义为Object_X类中的一个方法,但它给了我错误。如果我删除该点击属性,我的代码就会生成并运行良好。我的模型正在实现INotifyPropertyChanged,这就是为什么属性绑定工作正常。有人可以提出解决方案,或者有人可以看到问题吗?
<ListView ItemsSource="{Binding ObjectXCollection, Mode=TwoWay}">
<DataTemplate>
<StackPanel Orientation="Horizontal">
<CheckBox IsChecked="{Binding IsSelected, Mode=TwoWay}" IsThreeState="True">
<TextBlock Text="{Binding Value}"/>
</CheckBox>
<Button Content=">>>" Click="{Binding ExpandButtonHandler}"></Button>
</StackPanel>
</DataTemplate>
</ListView>
我试图绑定的方法不在我的viewmodel中,它在我的模型中。 ListView绑定到我的ViewModel中的ObservableCollection,但随后使用数据模板,DataType变成了Object_X,这就是为什么我的属性与模型绑定在一起工作得很好。我很困惑为什么我不能绑定到方法,因为它应该使用我的Object_X的同一个实例,它用于我的属性绑定。 – user3079315
@ user3079315没问题,答案保持不变。 WPF绑定无法绑定到方法。他们只能绑定到公共属性。有一些[解决方法](http://stackoverflow.com/a/844946/302677),但我仍然建议使用'ICommand'和AttachedCommandBehavior。 – Rachel