Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 转换器属性更改时wpf更新绑定属性_C#_Wpf_Vb.net_Imultivalueconverter - Fatal编程技术网

C# 转换器属性更改时wpf更新绑定属性

C# 转换器属性更改时wpf更新绑定属性,c#,wpf,vb.net,imultivalueconverter,C#,Wpf,Vb.net,Imultivalueconverter,我有一个TextBlock,它有一个与多重绑定绑定的前台属性,如下所示: <TextBlock.Foreground> <MultiBinding Converter="{StaticResource BlToBrshConv1}"> <Binding Path="SomePropertyOfOwnerClass" /> <Binding Path="AnotherProperty"/> </M

我有一个TextBlock,它有一个与多重绑定绑定的前台属性,如下所示:

<TextBlock.Foreground>
    <MultiBinding Converter="{StaticResource BlToBrshConv1}">
        <Binding Path="SomePropertyOfOwnerClass" />
        <Binding Path="AnotherProperty"/>
    </MultiBinding>
</TextBlock.Foreground>
Class BlToBrshConv1
 Implements IMultiValueConverter  
Property InheritedBrush as Brush
Public Function Convert(values() As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IMultiValueConverter.Convert
    Try
        Dim b1 As Boolean = CBool(values(0))     
        Dim b2 As Boolean = CBool(values(1))     
        If b1 = True AndAlso b2 = True Then
            ' Return SomeBrush0
        ElseIf b1 Then     
            '  Return SomeBrush1
        Else
            Return InheritedBrush
        End If
    Catch ex As Exception
        Return InheritedBrush
    End Try
现在我的问题是,当转换器本身的属性“InheritatedBrush”时,我需要更新“前台”笔刷

前景笔刷不会更新,因为绑定属性SomePropertyFownerClass和另一个属性没有更改


有什么想法吗?

您可以使用触发器更改绑定

<TextBlock>
    <TextBlock.Style>
        <Style TargetType="TextBlock">
            <Setter Property="Foreground" Value="{Binding Defaultbrush}"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding SomePropertyOfOwnerClass}">
                    <Setter Property="Foreground" Value="{Binding SomeBrush1}"/>
                </DataTrigger>
                <DataTrigger Binding="{Binding AnotherProperty}">
                    <Setter Property="Foreground" Value="{Binding InheritedBrush}"/>
                </DataTrigger>
                <MultiDataTrigger>
                    <MultiDataTrigger.Conditions>
                        <Condition Binding="{Binding SomePropertyOfOwnerClass}" Value="True"/>
                        <Condition Binding="{Binding AnotherProperty}" Value="True"/>
                    </MultiDataTrigger.Conditions>
                    <Setter Property="Foreground" Value="{Binding SomeBrush0}"/>
                </MultiDataTrigger>
            </Style.Triggers>
        </Style>
    </TextBlock.Style>
</TextBlock>

将另一个绑定添加到多重绑定中。另一方面,如果b1=True且Also b2=True,则可以简化为b1和Also b2