首页 > 解决方案 > Wpf DataBinding 到朋友属性

问题描述

我目前正在编写一个将由我的客户使用的类库。此外,我正在编写一个小型 wpf-gui 用于测试目的。这个 gui 需要比客户看到更多的信息。因此,我将一些属性声明为受保护的朋友(VB)/受保护的内部(C#),并将我的库的 InternalsVisibleTo-Attribute 设置为我的 gui。

虽然从后面的代码访问朋友属性效果很好,但对这些属性的 wpf 数据绑定失败了。

这个问题有什么解决办法吗?

标签: c#.netwpfvb.net

解决方案


数据绑定仅适用于public属性。

在你的情况下,你可以使用这样public的属性protected internal set

public string MyProperty { get; protected internal set; }

这确保了任何人都可以读取属性,但不能从类/子类和程序集的外部修改。

其他替代方法是公开单独的公共、仅获取属性,该属性从受保护的内部属性中获取值,如下所示:

public string MyProperty => MyProtectedInternalProperty;

推荐阅读