我有一个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中。
答案 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