我有一个带有ListView的Windows 8.1应用程序,我正在使用WinRt Xaml Toolkit中的ListViewExtensions(从Nuget获取最新版本)来绑定BindableSelection
这是我的XAML
<ListView
ItemsSource="{Binding AllItems}"
SelectionMode="Multiple"
ext:ListViewExtensions.BindableSelection="{Binding SelectedItems, Mode=TwoWay}">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
在我的ViewModel中,我有以下ObservableCollection,我将xaml绑定到
private ObservableCollection<string> _SelectedItems;
public ObservableCollection<string> SelectedItems
{
get { return _SelectedItems; }
set
{
if (value != _SelectedItems)
{
_SelectedItems = value;
NotifyPropertyChanged("SelectedItems");
}
}
}
我在我的ObservableCollection的get和set上放了断点。我的View加载后会立即调用get,但即使我选择了ListView的多个项目,也不会调用该集。
我做错了什么。
如果有人能指出我正确的方向,我会很高兴。 在此先感谢。
答案 0 :(得分:0)
意识到我的错误。我从未为ObservableCollections SelectedItems创建对象。
应该在某个时刻为ObservableCollection创建对象,否则XAML将绑定到一个显然无法更新的空对象引用。
以下是实例化ObservableCollection的方法。
SelectedItems = new ObservableCollection<MyItems>();
但是我仍然无法触及ObservableCollection的set函数的断点。我相信这是Observable的默认行为。如果有人可以对此发表评论,我会很高兴。
然而,这个特定问题的问题已经解决了。 感谢