![](/img/trans.png)
[英]How to pass a FormatString as ConverterParameter in XAML
[英]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.