【问题标题】:Declaring Tuple in Xaml在 Xaml 中声明元组
【发布时间】:2010-10-12 19:53:52
【问题描述】:

有没有办法在 xaml 中声明一个元组,以便我可以将其用作转换器参数?

【问题讨论】:

    标签: c# wpf xaml tuples


    【解决方案1】:

    不直接。

    类似问题有一些有趣的解决方案:

    通常,您必须创建自己的非泛型类型并使用它。

    示例

    为:

    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" />
    

    【讨论】:

      【解决方案2】:

      您不需要在 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"; }
          }
      }
      

      【讨论】:

      • 我知道实际上我不需要这个 Tuple visibleTuple = new Tuple(Visibility.Collapsed, Visibility.Visible); this.Resources.Add("visibleTuple", visibleTuple);只是认为必须有一种方法可以在 xaml 中使用 xaml2009 中的所有新功能来实现
      • 有趣的旁注,但没有回答问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-20
      • 2022-10-06
      • 1970-01-01
      相关资源
      最近更新 更多