2010-10-20 4 views
0

Как связать более чем с одним свойством в WPF?
Я знаю, что вы можете использовать ItemStringFormat="{0} my hard coded string" для описания строкового значения, но меня интересует что-то вроде этого ItemStringFormat="{0} ({1})", где нулевой элемент является свойством, а элемент one является свойством в связанном классе.Связывание с несколькими Prperties

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» - это код проформы.

ответ

0

Вы можете использовать MultiBinding с IMultiValueConverter для преобразования из нескольких источников в одноцелевое свойство (то есть: текст).

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>

Смежные вопросы