繁体   English   中英

在XAML中使用ConverterParameter

[英]Using ConverterParameter in xaml

我的xaml中有一个数据网格:

<dg:DataGridTextColumn Header="A"
                       Width="110"
                       Binding="{Binding ValueA, StringFormat=N2}"
                       IsReadOnly="true"
                       FontWeight="Bold">
    <dg:DataGridTextColumn.CellStyle>
        <Style TargetType="dg:DataGridCell">
            <Style.Triggers>
                <DataTrigger Binding="{Binding ValueA, Converter={StaticResource MyConverterA}}"
                             Value="True">
                    <Setter Property="Background"
                            Value="LightYellow" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </dg:DataGridTextColumn.CellStyle>
</dg:DataGridTextColumn>
<dg:DataGridTextColumn Header="B"
                       Width="180"
                       Binding="{Binding B, StringFormat=N2}"
                       IsReadOnly="true"
                       FontWeight="Bold">
    <dg:DataGridTextColumn.CellStyle>
        <Style TargetType="dg:DataGridCell">
            <Style.Triggers>
                <DataTrigger Binding="{Binding MyVal, Converter={StaticResource MyConverterB}, **ConverterParameter=??**}"
                             Value="True">
                    <Setter Property="Background"
                            Value="Red" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </dg:DataGridTextColumn.CellStyle>
</dg:DataGridTextColumn>

我需要使用ConverterParameter将“ A”列的值作为参数传递给MyConverterB。 有什么建议吗?

谢谢你的帮助。

在这种情况下,可以使用MultiBinding代替使用ConverterParameter

<MultiBinding Converter="{StaticResource MyConverterB}">
    <Binding Path="A" />
    <Binding Path="B" />
</MultiBinding>

IMultiValueConverter创建IMultiValueConverter

public class MyConverterB : IMultiValueConverter
{
    public object Convert( object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture )
    {

    }

    public object[] ConvertBack( object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture )
    {

    }
}

更新资料

或者,您可以尝试使用MultiDataTrigger更改颜色。 也许有一些转换器。 条件像逻辑AND一样工作。

<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
        <Condition Binding="{Binding Path=ValueA}" Value="True" />
        <Condition Binding="{Binding Path=B}" Value="True" />
    </MultiDataTrigger.Conditions>
    <Setter Property="Background" Value="Red" />
</MultiDataTrigger>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM