【问题标题】:Why WPF user control properties must be public to use them from XAML?为什么 WPF 用户控件属性必须是公共的才能从 XAML 中使用它们?
【发布时间】:2012-03-16 18:53:45
【问题描述】:

我正在开发 WPF 自定义控件。该控件具有在代码中设置并在 XAML 中使用的属性。此属性必须是公共的,因为它通过绑定在 XAML 上工作。如果只有一个类,为什么会这样?

<TextBlock Text="{Binding ElementName=PolicyBoxName, Path=FileNames[0]}" />

private string[] _fileNames;
        public string[] FileNames
        {
            get
            {
                return _fileNames;
            }
            set
            {
                if (value != _fileNames)
                {
                    _fileNames = value;
                    OnPropertyChanged("FileNames");
                }
            }
        }

【问题讨论】:

    标签: wpf binding user-controls


    【解决方案1】:

    XAML 解析器基于提供的 XML 构造对象并设置它们的属性。它与来自不同命名空间的任何其他类没有什么不同,它们可能希望创建您的用户控件并设置其属性。在没有反射的情况下,C# 语言的约束要求这些属性是公共的,以便对其进行设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-24
      • 1970-01-01
      • 2021-10-18
      • 2013-10-26
      • 1970-01-01
      • 2015-01-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多