![](/img/trans.png)
[英]How to pass multiple converter parameter in generic Enum to Boolean Converter
[英]How to pass element in the converter parameter in uwp?
我必须像下面的 WPF 代码片段一样在 UWP 中传递转换器参数中的元素。
<DataTemplate>
<TextBlock Text="{Binding Converter={StaticResource captionSummaryRowConverter}, ConverterParameter= {x:Reference Name= dataGrid}}" Foreground="Blue" Background="Yellow" FontSize="15"></TextBlock>
</DataTemplate>
由于x:Reference 关键字在Uwp 中不可用,是否有任何可能的方法将元素传递给uwp 中的converterparameter。
如何在uwp的转换器参数中传递元素?
目前, Converter 不支持传递元素ConverterParameter
。 我们经常使用它来传递StaticResource
或字符串格式。
<TextBlock Text="{Binding DoubleValue,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0:N2}'}"/>
或者
<TextBlock Text="Score : 60" Foreground="{Binding Passed,Converter={StaticResource BoolToValueConverter},ConverterParameter={StaticResource PassedBrush},FallbackValue={StaticResource FailedBrush}}"/>
更新
您可以将属性添加到转换器并与根面板绑定,然后将元素名称作为参数传递给转换器,调用 FindName 方法获取元素。
public class ImageConverter : IValueConverter
{
public UIElement UIParameter { get; set; }
public object Convert(object value, Type targetType, object parameter, string language)
{
var rootGrid = UIParameter as Grid;
if(parameter != null)
{
var ele = rootGrid.FindName(parameter.ToString());
}
return value;
}
}
用法
<local:ImageConverter x:Key="ImageConverter" UIParameter="{x:Bind RootGrid}" />
</Page.Resources>
<Grid x:Name="RootGrid">
<TextBlock x:Name="TestBlock" Text="Hello" />
<Image Source="{Binding Converter={StaticResource ImageConverter}, ConverterParameter='TestBlock'}" />
<ComboBox
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.