我有这个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中什么也得不到。我错过了什么?
提前致谢。
答案 0 :(得分:3)
您的AllRoundsSelectedItem
属性的setter是私有的,因此ListView
无法访问它。您可能会发现输出中存在绑定错误。
顺便说一句,因为KeyValuePairs
类代表一对,所以它应该被命名为KeyValuePair
。