【问题标题】:MultiBinding with Condition带条件的多重绑定
【发布时间】:2012-07-14 09:55:31
【问题描述】:

我在WPF 中有一个TextBlock,并将这个TextBlock 的文本属性绑定到多依赖属性。 我想有条件地绑定这些依赖属性。换句话说,我想每次将一些依赖属性绑定到TextBlock 对象的文本属性。我该怎么办?

编辑1:

我的TextBlock 在下面。我通过调查绑定依赖属性的值来计算这个文本块的文本属性。并希望通过更改每个绑定依赖属性来刷新文本块的文本。一些绑定依赖属性可能是空值,我不想将此依赖属性绑定到我的文本属性。当我调试我的应用程序并且依赖属性为空时,Visual Studio 在输出窗口中引发警告。

<TextBlock>
            <TextBlock.Text>
                <MultiBinding Converter="{StaticResource OCDFLinkTextConverter}">
                    <Binding Path="TbOCDFLink" RelativeSource="{RelativeSource AncestorType=ocdfcontrol:OCDFLink}"/>
                    <Binding Path="TbOCDFLink.FromOCDFObjectItem.OCDFObject.XPosition" RelativeSource="{RelativeSource AncestorType=ocdfcontrol:OCDFLink}"/>
                    <Binding Path="TbOCDFLink.FromOCDFObjectItem.OCDFObject.YPosition" RelativeSource="{RelativeSource AncestorType=ocdfcontrol:OCDFLink}"/>
                    <Binding Path="TbOCDFLink.ToOCDFObjectItem.OCDFObject.XPosition" RelativeSource="{RelativeSource AncestorType=ocdfcontrol:OCDFLink}"/>
                    <Binding Path="TbOCDFLink.ToOCDFObjectItem.OCDFObject.YPosition" RelativeSource="{RelativeSource AncestorType=ocdfcontrol:OCDFLink}"/>
                    <Binding Path="TbOCDFLink.FromOCDFObjectItem.OCDFObject.ParentOCDFObject.XPosition" RelativeSource="{RelativeSource AncestorType=ocdfcontrol:OCDFLink}"/>
                    <Binding Path="TbOCDFLink.FromOCDFObjectItem.OCDFObject.ParentOCDFObject.YPosition" RelativeSource="{RelativeSource AncestorType=ocdfcontrol:OCDFLink}"/>
                    <Binding Path="TbOCDFLink.ToOCDFObjectItem.OCDFObject.ParentOCDFObject.XPosition" RelativeSource="{RelativeSource AncestorType=ocdfcontrol:OCDFLink}"/>
                    <Binding Path="TbOCDFLink.ToOCDFObjectItem.OCDFObject.ParentOCDFObject.YPosition" RelativeSource="{RelativeSource AncestorType=ocdfcontrol:OCDFLink}"/>
                    <Binding Path="TbOCDFLink.TbOCDFLinkGroup.FromOCDFObjectItem" RelativeSource="{RelativeSource AncestorType=ocdfcontrol:OCDFLink}"/>
                    <Binding Path="TbOCDFLink.TbOCDFLinkGroup.ToOCDFObjectItem" RelativeSource="{RelativeSource AncestorType=ocdfcontrol:OCDFLink}"/>
                </MultiBinding>
            </TextBlock.Text>
        </TextBlock>

【问题讨论】:

  • 你能详细说明一下你想绑定什么样的多依赖属性TextBlock的Text属性
  • @ethicallogics:请看我的编辑。

标签: wpf binding multibinding


【解决方案1】:

你好,在你的转换器中试试这个

public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
 {
     string result="";
     if (values != null)
     {
         foreach (var val in values)
         {
             if (val == null)
                 continue;
             else
                 result = result + val;

         }
     }
     return result;
 }

我希望您的所有绑定都能正常工作。我希望这会有所帮助。

【讨论】:

  • 谢谢。但是当您查看 Visual Studio 的输出窗口时,会看到有关将空值绑定到文本属性的警告。
  • 显然它会显示 null 因为它们确实是 null ,如果您不想要,那么只需在 Binding 中指定 TargetNullValue。
  • 非常感谢。我必须在 Binding 中使用TargetNullValue
猜你喜欢
  • 1970-01-01
  • 2013-09-04
  • 2020-12-02
  • 2011-05-22
  • 2013-02-07
  • 2017-07-05
  • 2018-08-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多