WPF Caliburn.Micro按钮在DataGrid中选择全部

问题描述 投票:0回答:1

[我正在尝试找出如何bind使用button来选择rows中的所有DataGrid(项目)。

我发现与此最相关的事情是使用列标题选择所有复选框:

caliburn.micro

但是我希望将此按钮与DataGrid with Select All分开。

类似:

查看:

DataGrid

ViewModel:

<Button x:Name="SelectAll"/>

<DataGrid x:Name="People">
    <DataGrid.RowStyle>
        <Style>
            <Setter Property="DataGridRow.IsSelected"
                    Value="{Binding IsPartSelected}" />
        </Style>
    </DataGrid.RowStyle>

    <DataGrid.Columns>
        <DataGridTextColumn Header="Name"
                            Binding="{Binding PersonName, UpdateSourceTrigger=PropertyChanged}" />
     </DataGrid.Columns>
</DataGrid>

或以某种方式为public bool _isPartSelected = false; public bool IsPartSelected { get { return _isPartSelected; } set { _isPartSelected = value; NotifyOfPropertyChange(() => IsPartSelected); } } public void SelectAll() { if(IsPartSelected == true) { IsPartSelected = false; } else { IsPartSelected = true; } } 调用SelectAllCommand RoutedUICommand

任何建议/帮助将不胜感激。

c# wpf button datagrid caliburn.micro
1个回答
0
投票

答案就在您共享的链接中。您需要将Button click事件绑定到ViewModel中的SelectAll属性,并循环通过列表中的所有项绑定到PersonName列。

Caliburn.Micro具有用于视图/视图模型通信的某些不同机制,可以作为称为“动作”的命令的替代方法。

DataGrid

只需在ViewModel中编写Handler方法SelectAll并遍历所有项以选择它们。

© www.soinside.com 2019 - 2024. All rights reserved.