如何绑定我的ObservableCollection两种方式的ListView扩展WinRT Xaml工具包

本文关键字:ListView 方式 扩展 WinRT 工具包 Xaml 两种 ObservableCollection 何绑定 绑定 我的 | 更新日期: 2023-09-27 18:19:00

我有一个带有ListView的Windows 8.1应用程序,我正在使用来自WinRt Xaml工具包的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上设置了断点。get会在我的View加载时被调用,但是set永远不会被调用,即使我选择了ListView的多个项目。

我做错了什么吗?

如果有人能给我指出正确的方向,我会很高兴的。

如何绑定我的ObservableCollection两种方式的ListView扩展WinRT Xaml工具包

意识到我的错误。我从来没有为ObservableCollections SelectedItems创建过对象。

应该在某个时候为ObservableCollection创建对象,否则XAML将绑定到一个空对象引用,显然无法更新。

下面是实例化ObservableCollection的方法。

SelectedItems = new ObservableCollection<MyItems>();

然而,我仍然无法击中ObservableCollection的set函数的断点。我相信这是Observable的默认行为。如果有人能评论一下,我会很高兴的。

然而,这个特殊问题的问题已经解决了。由于