У меня есть следующая привязка
<Display.Value>
<MultiBinding StringFormat="{}{0} ({1})">
<Binding Path="Nickname" />
<Binding Path="FullName" />
</MultiBinding>
</Display.Value>
Согласно документации MultiBinding класса , это правильный синтаксис. Однако, когда я связываю его со свойством значения, появляется только пустая строка. Это свойство работает, когда я использую SingleBinding или просто обычную Binding.
public object Value
{
get { return (object)GetValue(ValueProperty); }
set { SetValue(ValueProperty, value); }
}
public static readonly DependencyProperty ValueProperty =
DependencyProperty.Register("Value", typeof(object), typeof(Display), new PropertyMetadata(String.Empty));
Однако, когда я связываю свою мультисвязь с другим присоединенным свойством (на этот раз тип является строкой)
public string Caption
{
get { return (string)GetValue(CaptionProperty); }
set { SetValue(CaptionProperty, value); }
}
public static readonly DependencyProperty CaptionProperty =
DependencyProperty.Register("Caption", typeof(string), typeof(Display), new PropertyMetadata(String.Empty));
Есть идеи, почему мультисвязывание не работает с Value
, но работает с Caption
? Это из-за типа объекта Value? Как я могу заставить MultiBinding работать с Value
?