WP8 LongListSelector SelectedItem不可绑定

Vis*_*nan 7 xaml longlistselector windows-phone-8

在WP8中,他们忘了将SelectedItem作为依赖属性提供,因此我无法绑定它.我使用此修复了:http://dotnet-redzone.blogspot.com/2012/11/windows-phone-8longlistselector.html

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

小智 11

您正在使用的自定义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;
    }
Run Code Online (Sandbox Code Playgroud)