如何在Windows 8.1中使用behavior SDK绑定ListView与SelectionMode multip

本文关键字:绑定 SDK behavior ListView multip SelectionMode Windows | 更新日期: 2023-09-27 18:18:56

我有一个Windows 8.1应用程序的ListView与SelectionMode多个(使ListView允许用户选择多个条目)

我正在尝试使用微软的行为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中的一个列表,如下所示

public List<MyData> Data { get; set; }
class MyData
{
    public string Name { get; set; }
    public bool IsSelected { get; set; }
}

我能想到的方法是,如果在我的视图中选择了相应的元素,则在MyData类中将IsSelected属性设置为true。但是这个解决方案看起来好像我需要隐藏代码。

我已经附加了EventTriggerBehavior为我的ListView,但我无法弄清楚如何绑定它和什么绑定它。

我将非常高兴,如果有人能指出我在正确的方向来实现这一点,使我的列表数据将有数据为我区分我的SelectedItems和非选中的项目。如果我可以完全消除IsSelected bool属性,那就更好了。

如何在Windows 8.1中使用behavior SDK绑定ListView与SelectionMode multip

查看WinRT XAML Toolkit中的BindableSelection

您可以在XAML中以以下方式使用它:

xmlns:Extensions="using:WinRTXamlToolkit.Controls.Extensions"
Extensions:ListViewExtensions.BindableSelection="{Binding SelectedItems, Mode=TwoWay}"