Привязка к нескольким свойствам - PullRequest
0 голосов
/ 20 октября 2010

Как связать более чем одно свойство в WPF?
Я знаю, что вы можете использовать ItemStringFormat="{0} my hard coded string" для описания строкового значения, но меня интересует что-то вроде ItemStringFormat="{0} ({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» - код стоимости

Ответы [ 2 ]

0 голосов
/ 20 октября 2010

Да, вы правы, и ради документации я предоставлю это решение здесь, используя приведенный выше пример.

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

0 голосов
/ 20 октября 2010

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

...