【发布时间】:2014-08-21 14:56:13
【问题描述】:
我有一个 Windows 8.1 应用程序,其 ListView 具有多个 SelectionMode(使 ListView 允许用户选择多个条目)
我正在尝试使用来自 Microsoft 的 Behaviors SDK
<DataTemplate x:Key="DataItemTemplate">
<TextBlock Text="{Binding Name}" Margin="10,0,0,0"/>
</DataTemplate>
<ListView ItemsSource="{Binding Data}"
SelectionMode="Multiple"
ItemTemplate="{StaticResource DataItemTemplate}">
<Interactivity:Interaction.Behaviors>
<Core:EventTriggerBehavior SourceObject="{Binding}" EventName="SelectionChanged"/>
</Interactivity:Interaction.Behaviors>
</ListView>
如您所见,ListView 的 ItemSource 已绑定到属性 Data,它是我的 ViewModel 中的一个 List,如下所示
public List<MyData> Data { get; set; }
class MyData
{
public string Name { get; set; }
public bool IsSelected { get; set; }
}
如果在我的视图中选择了相应的元素,我能想到的方法是在 MyData 类中将 IsSelected 属性设置为 true。但这个解决方案看起来我需要有代码隐藏。
我已为我的 ListView 附加了 EventTriggerBehavior,但我无法弄清楚如何绑定它以及将它绑定到什么。
如果有人能指出正确的方向来实现这一点,我会非常高兴,这样我的列表数据就会有数据让我区分我的 SelectedItems 和未选择的项目。或者如果我可以完全消除 IsSelected bool 属性,那就更好了。
提前致谢。
【问题讨论】:
标签: c# mvvm winrt-xaml windows-8.1 win-universal-app