ListView SelectedItem未在使用模板10 UWP的MVVM应用程序中激发

本文关键字:MVVM UWP 应用程序 SelectedItem ListView | 更新日期: 2023-09-27 18:29:35

我有这个XAML。。。

<ListView ItemsSource="{Binding AllRoundIDs}" Height="96"
          SelectedItem="{Binding AllRoundsSelectedItem, Mode=TwoWay}"
          SelectionMode="Single"
          >
    <ListView.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Key}" FontSize="30" Foreground="White" Padding="0,0,0,1" />
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

我的ViewModel中的这段代码。。。

    private ObservableCollection<KeyValuePairs> _AllRoundIDs;
    public ObservableCollection<KeyValuePairs> AllRoundIDs
    {
        get { return _AllRoundIDs; }
        private set { Set(ref _AllRoundIDs, value); }
    }
    private KeyValuePairs _AllRoundsSelectedItem;
    public KeyValuePairs AllRoundsSelectedItem
    {
        get { return _AllRoundsSelectedItem; }
        private set { Set(ref _AllRoundsSelectedItem, value); }
    }

KeyValuePairs类如下所示。。。

public class KeyValuePairs
{
    public string Key { get; set; }
    public string Value { get; set; }
}

当我运行应用程序时,我会按预期在ListView中获取项目。所以我知道数据绑定是有效的。

当我点击一个项目时,我没有得到任何生命。未激发对AllRoundsSelectedItem的绑定。这段代码在WPF应用程序中运行良好,但我在UWP中一无所获。我错过了什么?

提前谢谢。

ListView SelectedItem未在使用模板10 UWP的MVVM应用程序中激发

您的AllRoundsSelectedItem属性的setter是私有的,因此ListView无法访问它。您可能会发现输出中存在绑定错误。

顺便说一句,因为KeyValuePairs类表示一对,所以它可能应该命名为KeyValuePair