2012-03-02 17 views
0

我有一個WPF數據網格綁定到一個可觀察的集合,它按照預期工作。將文本綁定到WPF中數據網格的屬性的正確方法是什麼?

什麼我想現在要做的就是添加文字下方說:「號碼選擇的行:{計數放在這裏}

什麼是做到這一點的正確方法?我可以在視圖模型中添加一個名爲SelectedCount或類似的東西的新屬性,並將其綁定到該屬性,但它不正確。看起來多餘。另外,我可以在後面的代碼中動態地設置標籤文本,但我不確定這是否是「正確」的地方。

下面是一個例子。

編輯:

請假裝有一個複選框列標題,其目的是提供支票/取消所有功能。此標題複選框的狀態不應計入最終計數。

example

回答

1

你可以使用元件結合以聲明方式綁定到SelectedItems.Count財產XAML:

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

更新

想必你使用MVVM,所以加入了SelectedXCount屬性到您的視圖模型是視圖模型的完全合理的應用。在視圖模型中使用它的好處是可以根據選定項目的數量進行單元測試。例如。如果您想檢查用戶是否只能進展(CanNext屬性返回true),如果用戶選擇了一些項目。

SelectedItems屬性不是DependencyProperty所以不能綁定,但是有很多文章在線解決了在MVVM中使用DataGrid時的問題。大多數解決方案都涉及使用調用DataGrid的SelectionChanged事件時調用視圖模型命令的機制。

+0

哎呀。我應該在問題中也有這個。還有一個複選框標題(用於全選/全選)。計算作爲選定的項目將打破此 – jglouie 2012-03-02 22:53:52

+0

答案更新。 – devdigital 2012-03-02 23:02:53

+0

非常好,謝謝 – jglouie 2012-03-02 23:06:04

相關問題