【发布时间】:2010-10-12 19:53:52
【问题描述】:
有没有办法在 xaml 中声明一个元组,以便我可以将其用作转换器参数?
【问题讨论】:
有没有办法在 xaml 中声明一个元组,以便我可以将其用作转换器参数?
【问题讨论】:
不直接。
类似问题有一些有趣的解决方案:
通常,您必须创建自己的非泛型类型并使用它。
示例
为:
Tuple<string, int, double>
你可以创建一个类:
namespace Models
{
class MyData
{
public MyString { get; set; }
public MyInt { get; set; }
public MyDouble { get; set; }
}
}
然后将命名空间添加到 XAML:
xmlns:models="clr-namespace:Models"
然后根据需要创建您的实例:
<models:MyData MyString="someString" MyInt="123" MyDouble="0.1" />
【讨论】:
您不需要在 XAML 中声明它。您可以使用 x:Static 来分配代码中声明的 ConverterParameter:
<TextBlock Text="{Binding Converter={x:Static local:MyConverter.Default}, ConverterParameter={x:Static local:MySettings.Name}}" />
您访问的内容只需要是静态的:
public static class MySettings
{
public static string Name
{
get { return "Test"; }
}
}
【讨论】: