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

У меня есть некоторый класс со свойствами firstName и lastName. Я хочу связать TextBlock с конкатенацией этих двух свойств. Я знаю, что могу создать третье свойство, которое будет возвращать конкатенацию этих свойств. Но я не хочу использовать этот подход. Можно ли привязать TextBlock к двум свойствам. а также я не хочу создавать композитный userControl.

Ответы [ 4 ]

3 голосов
/ 12 мая 2010

В .NET 3.5SP1 Microsoft добавила StringFormat к привязкам. Это делает это намного проще. См. сообщение в блоге Лестера для примера. В вашем случае:

<TextBox>
  <TextBox.Text>
    <MultiBinding StringFormat="{0} {1}">
      <Binding Path="FirstName" />
      <Binding Path="LastName"/>
    </MultiBinding>
  </TextBox.Text>
</TextBox>

или

<TextBox>
  <TextBox.Text>
    <MultiBinding StringFormat="{1}, {0}">
      <Binding Path="FirstName" />
      <Binding Path="LastName"/>
    </MultiBinding>
  </TextBox.Text>
</TextBox>
2 голосов
/ 12 мая 2010

Вы могли бы использовать мультисвязывание, но я предполагаю, что вам нужно кодировать выход из конкатенации. Вот пример: Multibinding

0 голосов
/ 12 мая 2010

использовать MultiBinding или Converter (если есть сложные операции)

0 голосов
/ 12 мая 2010

Я не уверен, возможно ли связать два свойства, но нет причины, по которой вы не можете создать два TextBlocks, верно?

<TextBlock Text="{Binding firstName}"/> <TextBlock Text="{Binding lastName}"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...