访问XAML代码中的类成员

时间:2018-01-22 07:12:29

标签: c# wpf xaml custom-controls

如何在我的WPF项目中预先形成以下结果。

C#代码背后

public class Test
{
    public int a;
}

自定义控制代码背后

public class myControl : Control
{
    public Test myVar { get; set; }
}

Xaml Code

<myControl myVar.a=2/>

例如,在代码中使用像TextBlock Class这样的代码:

<TextBox TextBlock.FontFamily="12"/>

1 个答案:

答案 0 :(得分:0)

您使用TextBlock提供的示例

<TextBox TextBlock.FontFamily="12"/>

是一种不同的情况,因为TextBlock不是TextBox的属性。

在这里设置一个所谓的附属属性。

按照您的示例,您必须按如下方式编写Test类:

using System.Windows;

namespace WpfApp1
{
  public class Test
  {
    public static readonly DependencyProperty aProperty
      = DependencyProperty.RegisterAttached ( "a",
                                              typeof(int),
                                              typeof(Test),
                                              new PropertyMetadata(0) ) ;

    public static int Geta ( DependencyObject obj )
    {
      return (int)obj.GetValue(aProperty);
    }

    public static void Seta ( DependencyObject obj, int value )
    {
      obj.SetValue(aProperty, value);
    }
  }
}

然后您可以按如下方式在XAML中设置它:

<local:myControl local:Test.a="2" />

请注意,我根本没有使用你的属性myVar。

如果这是您想要的,我建议您对附加属性进行一些背景阅读。