[英]XAML designer can't recognize other control properties (VS 2015)
我最近安装了Visual Studio 2015社区,并且有一个最初在Visual Studio 2010中开发的大型WPF项目,然后在Visual Studio 2012 Ultimate中继续进行。 问题是在这个项目中,我有一些控件,其属性设置如下:
private string _Header = "";
public string TextHeader
{
get { return _Header; }
set
{
_Header = value;
if (_Header == string.Empty)
{
lTitle.Visibility = Visibility.Hidden;
iSeparator.Visibility = Visibility.Hidden;
}
else
{
lTitle.Content = _Header;
lTitle.Visibility = Visibility.Visible;
iSeparator.Visibility = Visibility.Visible;
}
}
}
我在VS 2012的XAML设计器中没有问题,现在,在此版本的Visual Studio(2015)中,我无法使用该设计器,它引发错误“ 无法识别或无法访问成员” TextHeader“ ”。
我没有调试问题,应用程序运行时没有问题,没有异常,使用这些属性的控件也没有问题,我认为这是XAML设计器的问题。
我的项目Framework版本是3.5,目标平台是x64。
您要通过XAML设置的属性应首先注册。 因此,在您的情况下,代码应为:
public static readonly DependencyProperty TextHeaderProperty = DependencyProperty.Register("TextHeader", typeof(string), typeof(StyledPanel))
public string TextHeader
{
get { return (string)GetValue(TextHeaderProperty); }
set { SetValue(TextHeaderProperty, value); }
}
此文章解释DependencyProperties非常好。
请注意,进行此更改后,应重新构建应用程序。
编辑
打回来:
public static readonly DependencyProperty TextHeaderProperty = DependencyProperty.Register(
"TextHeader",
typeof(string),
typeof(StyledPanel),
new PropertyMetadata(TextHeaderPropertyChanged));
private static void TextHeaderPropertyChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
var instance = sender as StyledPanel;
if (String.IsNullOrEmpty(instance.TextHeader))
{
instance.lTitle.Visibility = Visibility.Hidden;
instance.iSeparator.Visibility = Visibility.Hidden;
}
else
{
instance.lTitle.Content = _Header;
instance.lTitle.Visibility = Visibility.Visible;
instance.iSeparator.Visibility = Visibility.Visible;
}
}
希望能帮助到你
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.