代码之家  ›  专栏  ›  技术社区  ›  Mladen Mihajlovic

绑定WPF ListView后选择所有项

  •  0
  • Mladen Mihajlovic  · 技术社区  · 16 年前

    我有以下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不起作用,因为我在它上面填充DebitorderItem之前将它链接起来。

    1 回复  |  直到 13 年前
        1
  •  3
  •   Tim Cooper    13 年前

    您可以在加载的事件中执行此操作:

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

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