TextBlock
これのin WPF
and binding text プロパティTextBlock
を多依存プロパティに持っています。これらの依存関係プロパティを条件付きでバインドしたい。つまり、依存関係プロパティを毎回TextBlock
オブジェクトのテキスト プロパティにバインドしたいということです。どのようにできるのか?
編集1:
私のTextBlock
は以下です。このテキストブロックのテキスト プロパティを、バインド依存プロパティの調査値によって計算します。各バインディング依存関係プロパティを変更して、テキストブロックのテキストを更新したい。バインディング依存関係プロパティの一部が null 値である可能性があり、この依存関係プロパティをテキスト プロパティにバインドしたくありません。アプリケーションをデバッグし、依存関係プロパティが null の場合、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>