【问题标题】:Selecting all items after binding wpf listview绑定wpf listview后选择所有项目
【发布时间】:2009-03-29 19:34:55
【问题描述】:

我有以下 XAML:

<ListView x:Name="debitOrderItems" ItemsSource="{Binding DebitOrderItems}">
  <ListView.ItemTemplate>
    <DataTemplate>
      <CheckBox x:Name="checkbox" Content="{Binding}" IsChecked="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}, Path=IsSelected}" />
    </DataTemplate>
  </ListView.ItemTemplate>
</ListView>

绑定项目列表工作正常,我得到一个带有复选框的漂亮列表视图,但我希望立即将它们全部选中。 ListView 上有一个 SelectAll() 方法,但我什么时候可以调用它? DataContextChanged 不起作用,因为我在填充 DebitOrderItems 之前链接它。

【问题讨论】:

    标签: wpf xaml mvvm binding


    【解决方案1】:

    您可以在 Loaded 事件中执行此操作:

    public Window()
    {
        InitializeComponent();
        Loaded += delegate
        {
            _listView.SelectAll();
        };
    }
    

    也就是说,我会质疑你的设计。通常,列表中的每个项目都有一个视图模型,并将IsChecked 属性绑定到该视图模型上的属性。

    【讨论】:

    • 谢谢,虽然我更希望能在 XAML 中找到一种方法。
    • 在 XAML 中执行此操作的方法是通过视图模型。只需将 IsChecked 绑定到视图模型中的属性,并确保该属性默认为 true。
    • 我对如何使用 MVVM 执行此操作有点困惑?我正在使用 Prism 和演示者第一个模型。我确实有一个由演示者填充并设置在视图上的模型。这与 MVVM 模型有何不同。还有像客户实体这样的业务实体集合呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-28
    • 2010-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多