[英]WPF MVVM TextBlock binding to string in a class DependencyProperty
在我的應用程序中,我在DataGrid
有一個成員列表,並且當選擇一個成員時,將在其成員配置文件中填充其詳細信息。 成員配置文件由10多個TextBlocks
組成,每個文本值都綁定到string
類型的單個DependencyProperty (DP)
。
生成的成員列表是List<MEMBERINFO>
,而SelectedMember DP
是MEMBERINFO類型。
public partial class MEMBERINFO
{
public GD_MEMBERDETAILS MEMBERDETAILS { get; set; }
public List<GD_ADDRESSDETAILS> ADDRESSDETAILS { get; set; }
public List<GD_VESSELDETAILS> BOATDETAILS { get; set; }
public GD_MEMBERSHIPS MEMBERSHIP { get; set; }
public List<string> FAMILYMEMBERS { get; set; }
}
當前,當在DataGrid
中SelectedMember
成員時,將SelectedMember
值分配給各個DependencyProperties
,以在成員配置文件中顯示,例如
MemberName = SelectedMember.MEMBERINFO.MEMBER_NAME;
在執行此操作的同時,我覺得應該有一種更整潔的方法來執行此操作,因為我已經在SelectedMember
所需的所有信息。 因此,不應10+串DependencyProperties
和分配他們的價值觀SelectedMember
,有沒有辦法有一個容器內的所有的TextBlocks用的ItemsSource必然SelectedMember
並指定綁定文本中的屬性SelectedMember
? 因此,就像使用DataGrid一樣? 我知道ListView和ListBox也有ItemsSource,但是我的成員概要文件不是列表,我只想要一個簡單的容器,它沒有DataGrids和ListViews / Box那樣的任何固有功能。
注意:在另一個存在類似問題的應用程序中,我設法處理了DataGrid,以刪除其所有固有的DataGrid功能,並在單個單元格中顯示多個文本塊,以便可以使用其ItemsSource。 但這確實很痛苦,所以我再次覺得應該有一個更簡單的方法!
您不能直接將TextBlock
綁定到源屬性嗎?:
<ItemsControl ...>
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding DataContext.SelectedMember.MEMBERINFO.MEMBER_NAME,
RelativeSource={RelativeSource AncestorType=ItemsControl}}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.