在 WP8 中,他们忘记提供 SelectedItem 作为依赖属性,因此我无法绑定(bind)到它。我用这个解决了这个问题:http://dotnet-redzone.blogspot.com/2012/11/windows-phone-8longlistselector.html

这样做时,我注意到我无法从 ViewModel 重置属性,即如果我在 ViewModel 中将项目设置为 null,它不会影响 UI。我已经在 UI 中提供了两种方式绑定(bind),但仍然在 ViewModel 中将项目设置为 null 不会更改 LongListSelector 中的选定项目。我也不想使用 SelectionChanged 事件,因为我在 WP7.5 应用程序和 WP8 应用程序之间共享 ViewModel,因此我想尽可能多地推送到 ViewModel。有解决方案吗?

最佳答案

您使用的自定义 LongListSelector 类似乎无法正确处理 setter。

将 OnSelectedItemChanged 回调替换为以下内容:

    private static void OnSelectedItemChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
        var selector = (LongListSelector)d;
        selector.SetSelectedItem(e);
    }

    private void SetSelectedItem(DependencyPropertyChangedEventArgs e)
    {
        base.SelectedItem = e.NewValue;
    }

关于xaml - WP8 LongListSelector SelectedItem不可绑定(bind),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15232725/

10-13 04:19