由于您不能在UWP中使用x:type,如何将对象的类型作为转换器参数传递给转换器?基本上,我想在UWP中做到这一点:
Header="{x:Bind NavMenu.SelectedItem,
Mode=OneWay,
Converter={StaticResource ObjectToStringConverter},
ConverterParameter={x:type NavigationViewItem}}"
是的,我意识到,因为我使用的是x:Bind,所以我可以直接投射对象。但是,Resharper抱怨转换并将其标记为语法错误,因此我想使用转换器来解决它。另外,只是因为我很好奇您如何将Type传递给XAML中的转换器以用于其他用途。
答案 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)}" />