什么';在WPF中,将文本绑定到数据网格属性的正确方法是什么?

什么';在WPF中,将文本绑定到数据网格属性的正确方法是什么?,wpf,Wpf,我有一个WPF数据网格绑定到一个可观察的集合,该集合按预期工作 我现在要做的是在下面添加文本,说:“所选行数:{count goes here}” 正确的方法是什么?我可以在视图模型中添加一个名为SelectedCount的新属性或类似的属性并绑定到该属性,但感觉不太对劲。这似乎是多余的。此外,我可以在代码隐藏中动态设置标签文本,但我不确定这是否是执行此操作的“正确”位置 下面是一个例子 编辑: 请假装有一个复选框列标题,其目的是提供选中/取消选中所有功能。此标题复选框的状态不应计入最终计数 您

我有一个WPF数据网格绑定到一个可观察的集合,该集合按预期工作

我现在要做的是在下面添加文本,说:“所选行数:{count goes here}

正确的方法是什么?我可以在视图模型中添加一个名为
SelectedCount
的新属性或类似的属性并绑定到该属性,但感觉不太对劲。这似乎是多余的。此外,我可以在代码隐藏中动态设置标签文本,但我不确定这是否是执行此操作的“正确”位置

下面是一个例子

编辑:

请假装有一个复选框列标题,其目的是提供选中/取消选中所有功能。此标题复选框的状态不应计入最终计数


您可以使用元素绑定以声明方式绑定到XAML中的
SelectedItems.Count
属性:

<TextBlock Text="{Binding ElementName=MyDataGrid,
   Path=SelectedItems.Count, StringFormat=Number of selected rows: {0}}" />

更新

假设您使用的是MVVM,因此向视图模型添加
SelectedXCount
属性是视图模型的一个非常合理的应用。在视图模型中使用它的优点是,您可以基于所选项目的数量进行单元测试。例如,如果您想检查用户是否只有在选择了某些项目后才能继续(a
CanNext
属性返回true)


SelectedItems
属性不是一个
dependencProperty
,因此无法绑定到,但是当在MVVM中使用DataGrid时,有许多在线文章可以解决这个问题。大多数解决方案都涉及到在调用DataGrid的
SelectionChanged
事件时调用视图模型命令的机制。

Yikes。我也应该在问题中有这个。还有一个复选框标题(全选/全选)。将其计算为选定项将打破此限制