如何绑定到WPF中的多个属性?
我知道您可以使用ItemStringFormat="{0} my hard coded string"
来描述字符串值,但我对此类ItemStringFormat="{0} ({1})"
感兴趣,其中item 0是属性,而item 1是绑定类中的属性。
public class ExchangeRate
{
public int ID { get; set; }
public string Code { get; set; }
public string Description { get; set; }
public decimal Rate { get; set; }
}
<ComboBox Margin="5,0" Name="Currency" ItemsSource="{Binding}" DisplayMemberPath="Description" SelectedValuePath="Code"/>
这将给我一个包含所有货币描述的清单,但我想要的是这样的结果
“美元(USD)”
在哪里“美元“是属性描述,”USD“是prorpety Code
答案 0 :(得分:0)
您可以使用MultiBinding和IMultiValueConverter将多个来源转换为单个目标属性(即:文字)。
答案 1 :(得分:0)
是的,你是对的,为了文档起见,我将使用上面的例子提供解决方案。
<ComboBox Margin="5,0" Name="CurrentCurrency" ItemsSource="{Binding}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock DataContext="{Binding}">
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} ({1})">
<Binding Path="Description" />
<Binding Path="Code" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>