繁体   English   中英

如何在uwp的转换器参数中传递元素?

[英]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.

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