[英]Binding to the value of, value(which is again the property) of property in XAML
背景說明:我有一個自定義控件列表框,顯示集合中的值(比如Person)。 Person類具有Person_id,FirstName,LastName等。
new Person(){
Person_id = "T001",
FirstName = "Fname1",
LastName = "LName1"
});
new Person()
{
Person_id = "T002",
FirstName = "Fname2",
LastName = "Lname2"
});
我的自定義控件中有一個名為DefaultCategory的屬性。 此屬性定義要在Listbox中顯示的Person屬性,例如在XAML中,如果我將傳遞DefaultCategory =“FirstName”,那么我的自定義控件列表框將包含“Fname1”,“Fname2”項。
要求:我想從我的自定義控件的resourceDictionary(Generic.XAML)中應用datatemplate。 我喜歡 -
<DataTemplate x:Key="ComboItemTemplate">
<TextBlock Text="{Binding Path=DefaultCategory}" FontStyle="Italic"/>
</DataTemplate>
問題:當我運行我的應用程序時,自定義控件列表框顯示“FirstName”兩次而不是顯示“Fname1”,“Fname2”
簡介:我想綁定屬性值(“FirstName”)的值(“Fname1”)(“DefaultCategory”)意味着代替Binding valueof(DefaultCategory)我想綁定valueof(valueof(DefaultCategory))
任何形式的幫助表示贊賞。
你不能這樣綁定。 您正在將文本塊綁定到DefaultCategory屬性,該屬性包含“FirstName”,因此您的結果是預期的。
如果要動態更改綁定,可以在模板中為每個可用字段使用觸發器:
<DataTemplate x:Key="ComboItemTemplate">
<TextBlock Name="DefaultText" FontStyle="Italic"/>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=DefaultCategory}" Value="FirstName">
<Setter TargetName="DefaultText" Property="Text" Value="{Binding FirstName}"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=DefaultCategory}" Value="LastName">
<Setter TargetName="DefaultText" Property="Text" Value="{Binding LastName}"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.