如何在XAML WPF中访问自定义控件的属性

时间:2014-10-22 01:46:14

标签: c# wpf xaml

我有一个MyButton属性的自定义Text

public string Text
{
    get { return aTextBlockInButton.Text; }
    set { aTextBlockInButton.Text = value; }
}

在C#中创建一个按钮并设置其Text属性(文本显示正确):

MyButton b = new MyButton(); 
b.Text="hello";

然而,当我在XAML中这样做时

<local:MyButton Text="someText" />

我收到错误

the member "Text" is not recognized or is not accessible. 

为什么呢?请注意,MyButton显示在Intellisense中。

2 个答案:

答案 0 :(得分:3)

XAML编辑器实际上是错误的。有时它无法正确报告并提供错误的错误通知。因此,您不应该总是相信XAML编辑器告诉您的内容。我甚至有一个非常长的XAML代码,但 整个 代码在XAML编辑器中报告了一些问题,但无论如何运行/调试代码都没问题。所以我的建议首先要相信自己,如果有任何实际错误,你将无法编译并运行它。

有时在运行代码后,回到XAML代码,您会看到错误通知已经消失。

答案 1 :(得分:1)

您需要依赖属性,普通属性不适用于XAML绑定。

类似这样的事情

public static readonly DependencyProperty TextProperty = 
DependencyProperty.Register("Text", typeof(string), typeof(Button));
public string Text
{
    get
    {
        return this.GetValue(TextProperty) as string;
    }
    set
    {
        this.SetValue(TextProperty, value);
    }
}

在此处阅读有关依赖项属性的更多信息:Dependency Property Tutorial