如何在UWP中将类型传递给ConverterParameter?

时间:2019-05-03 16:51:16

标签: uwp-xaml

由于您不能在UWP中使用x:type,如何将对象的类型作为转换器参数传递给转换器?基本上,我想在UWP中做到这一点:

Header="{x:Bind NavMenu.SelectedItem, 
                Mode=OneWay, 
                Converter={StaticResource ObjectToStringConverter}, 
                ConverterParameter={x:type NavigationViewItem}}"

是的,我意识到,因为我使用的是x:Bind,所以我可以直接投射对象。但是,Resharper抱怨转换并将其标记为语法错误,因此我想使用转换器来解决它。另外,只是因为我很好奇您如何将Type传递给XAML中的转换器以用于其他用途。

1 个答案:

答案 0 :(得分:0)

  

如何在UWP中将类型传递给ConverterParameter?

您不能直接在ConverterParameter上绑定值,原因是ConverterParameter不是依赖属性,而是简单对象。在这种情况下,您将无法使用绑定,并且传递x:type的语法是错误的。

根据您的要求,您可以在转换器上创建依赖项属性,而不使用ConverterParameter:为了能够创建DP,您的转换器必须继承自DependencyObject。有关详细步骤,请参阅此博客WinRT Converter Parameter Binding

更新

如果要传递Type参数,则可以使用get类型Functions in x:Bind

例如:

static public class MyHelpers
{
    public static Type GetType(object ele)
    {
        return ele.GetType();
    }
}

Xaml

<TextBox Text="{x:Bind local:MyHelpers.GetType(Item)}" />