绑定到几个属性

时间:2010-10-20 16:46:26

标签: .net-3.5 c#-3.0 binding

如何绑定到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

2 个答案:

答案 0 :(得分:0)

您可以使用MultiBindingIMultiValueConverter将多个来源转换为单个目标属性(即:文字)。

答案 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>