首页 > 解决方案 > WPF绑定文本块文本以更新属性,但文本由转换器更改

问题描述

我有一个带有文本块的树视图,它根据转换器显示一些文本。我希望文本框根据转换器中未使用的属性进行更新,但也是发送到转换器的对象的属性。

以下是我的树视图中层次结构模板中的文本块:

<TextBlock Text="{Binding Converter={StaticResource EntityIDToStrConverter},UpdateSourceTrigger=}" Margin="6" TextAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center"/>

这个转换器使用对象的 3 个不同属性根据我的需要返回一个字符串。所以通常我将我的文本块绑定到如下路径:

<TextBlock Text="{Binding Binding Path=Name, Converter={StaticResource EntityIDToStrConverter},UpdateSourceTrigger=}" Margin="6" TextAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center"/>

但这不允许我的对象传递给转换器,而只能传递给 Name 属性。如何使绑定对特定属性的更改敏感,同时仍将整个对象传递给转换器?

标签: c#wpfbindingwcf-binding

解决方案


多重绑定使我能够允许多个属性的值更改事件为每个属性更新此绑定。

这是我的 xaml 代码:

   <TextBlock.Text>
          <MultiBinding Converter="{StaticResource DataClassMultiValueConverter}">
                <Binding Path="StationID" NotifyOnSourceUpdated="True"/>
                <Binding Path="DeviceID" NotifyOnSourceUpdated="True"/>
                <Binding Path="SubDeviceID" NotifyOnSourceUpdated="True"/>
          </MultiBinding>
  </TextBlock.Text>

推荐阅读