ListView SelectedItem不使用Template 10 UWP在MVVM应用程序中触发

时间:2016-01-08 17:03:22

标签: c# xaml listview mvvm uwp

我有这个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中什么也得不到。我错过了什么?

提前致谢。

1 个答案:

答案 0 :(得分:3)

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

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