當我的ListView中的選擇更改時,如何更改TextBlock的文本?
我不想這樣做手動...
ListView的所有項目是LogEntry的(類)...我可以在TextBlock的文本屬性中使用綁定來獲取所選項目的特定屬性?TextBlock TextView中的文本綁定項
回答
是的,其實有多種解決方案,我給你最「WPF」之類的答案,但海事組織還最不靈活。
首先,你需要設置IsSynchronizedWithCurrentItem="True"
property
現在,如果你選擇一個項目,綁定CollectionView將設置項爲CURRENTITEM。
現在您的文本框/塊可以通過使用'/'的特殊綁定語法綁定到此特定項目。 例如:
<TextBlock Text="{Binding LogEntries/}"/>
當然,你可以通過藏漢結合
<TextBlock Text="{Binding LogEntries/WarningMessage}"/>
希望幫助擺脫當前項目的特定屬性。
假設你有一個這樣的列表視圖:
<ListView ItemSource="{Binding LogEntries}" Name="logs" IsSynchronizedWithCurrentItem="True">
</ListView>
<ContentControl Content="{Binding ElementName=logs, Path=SelectedItem}" ContentTemplate="{StaticResource logTemplate}"/>
現在,您需要提供的資源與logtemplate在需要定義。
<UserControl.Resources>
<DataTemplate DataType="{x:Type local:LogEntry}">
<TextBlock Text="{Binding Path=LogText}"/> <-- This is a Property-Binding of your custom class
</DataTemplate>
</UserControl.Resources>
缺少的最後一件事是將命名空間提供給本地類LogEntry。如果你使用一個像Resharper這樣的真棒工具,它會爲你插入名字空間。否則,這裏的樣本聲明:
<UserControl xmlns:local="clr-namespace:My.App.Namespace.LogEntry;assembly=My.App"
... (rest of namespace declarations)
我不知道ContentControl的功能是什麼... – 2012-02-22 09:46:14
對不起,它進一步... – 2012-02-22 09:46:50
是的,ItemsSource是正確的。 我在內部使用ObservableCollection
- 1. 在新窗口中綁定TextBlock文本?
- 2. 將WPF TextBlock綁定到文本文件
- 3. 動態設置TextBlock的文本綁定
- 4. 將文本添加到綁定的TextBlock
- 5. TextBlock:文本和StringFormat的綁定
- 6. 綁定一個TextBlock的文本TabControl的項目在WPF
- 7. 將TextBlock的文本設置爲字符串加綁定項目?
- 8. 將TextBlock文本綁定到資源
- 9. 動態文本綁定在WPF TextBlock
- 10. TextBlock綁定
- 11. TextBlock綁定?
- 12. TextBlock/TextBox中的格式化文本 - 帶有綁定
- 13. 在ListView中綁定到TextBlock
- 14. 更新TextBlock綁定
- 15. 如何將TextBlock的文本屬性綁定到文本框的文本屬性
- 16. 在DataGrid中綁定TextBlock文本和組合框SelectionChanged事件
- 17. TextBlock的綁定格式
- 18. 的TextBlock甚至綁定
- 19. WPF屬性綁定的TextBlock
- 20. 添加文本TextBlock的Text屬性時,它的綁定
- 21. 文本塊綁定文本
- 22. 如何綁定DataTemplate中的TextBlock的值?
- 23. TextBlock綁定到文本框的可見性
- 24. Windows Phone 7的 - TextBlock文本綁定到ViewModel不返回anythinig
- 25. 當它是一個簡單的字符串綁定TextBlock文本
- 26. 如何獲取文本從綁定的TextBlock商店App C#
- 27. WPF綁定:如何將文件路徑列表中的名稱綁定到ListBox中TextBlock的文本?
- 28. 將文本框的文本屬性綁定到TextBlock的附加屬性,如Grid.Row
- 29. 在Validation.ErrorTemplate中綁定TextBlock的FontSize
- 30. 將textblock綁定到純xaml中的當前列表框項目
但是,當ListView的選擇發生變化時,TextBox-Text必須更新...所以我需要listView的特定項目,並且爲每個TextBox指定LogEntry-Item的特定屬性(DependencyProperty) ... – 2012-02-22 10:19:00
別擔心,它的確如此。當你將一個集合綁定到一個ItemsControl時,WPF將不會直接綁定它,而是一個CollectionView綁定在控件和你的集合之間。使用IsSynchronizedWithCurrentItem,collectionview將跟蹤您選擇的項目。綁定到您的集合,使綁定知道CollectionView,因此每個綁定到您的集合的控件也可以訪問當前項目。 – dowhilefor 2012-02-22 10:54:19
確定它的工作原理:D謝謝。 – 2012-02-22 12:02:31