C# XAML可以';看不到IList的成员-不一致的可访问性?

C# XAML可以';看不到IList的成员-不一致的可访问性?,c#,wpf,xaml,C#,Wpf,Xaml,我正在用C#类中的IList创建的按钮构建一个WPF屏幕。它生成并显示正确数量的按钮;但是,不显示从列表项生成的按钮上的文本 我以前在另一个课堂/屏幕上做过,效果很好 我在调试时注意到,如果我将鼠标悬停在有效类(BibList)中的List对象上,我会得到一个飞越提示“不一致的可访问性:属性类型'System.Collections.Generic.IList'比属性'BurnIn.UI.Modules.Operations.VieModels.OvenViewModel.BibList'更难访

我正在用C#类中的IList创建的按钮构建一个WPF屏幕。它生成并显示正确数量的按钮;但是,不显示从列表项生成的按钮上的文本

我以前在另一个课堂/屏幕上做过,效果很好

我在调试时注意到,如果我将鼠标悬停在有效类(BibList)中的List对象上,我会得到一个飞越提示“不一致的可访问性:属性类型'System.Collections.Generic.IList'比属性'BurnIn.UI.Modules.Operations.VieModels.OvenViewModel.BibList'更难访问”

我在类中没有得到有效的消息,它与我看到的消息相匹配(XAML看不到SlotInfo信息);但是,所有内容都是公共的,所以我看不到可访问性问题在哪里

以下是声明列表的代码:

namespace BurnIn.UI.Modules.Operations.ViewModels
{
    public class SlotInfo
    {
        public int SlotNumber;
        public string BibName;
    }

    public class OvenViewModel : OvenViewModelBase
    {
        private List<SlotInfo> m_BibList = new List<SlotInfo>();
        public IList<SlotInfo> BibList
        {
            get { return m_BibList; }
        }
namespace BurnIn.UI.Modules.Operations.ViewModels
{
公共类SlotInfo
{
公共int SlotNumber;
公共字符串BibName;
}
公共类OvenViewModel:OvenViewModelBase
{
私有列表m_BibList=新列表();
公共图书馆学家
{
获取{return m_BibList;}
}

这可能与列表和IList之间的转换有关。如果更改类型以匹配,会发生什么情况

像这样

namespace BurnIn.UI.Modules.Operations.ViewModels
{
public class SlotInfo
{
    public int SlotNumber;
    public string BibName;
}

public class OvenViewModel : OvenViewModelBase
{
    var m_BibList = new List<SlotInfo>();
    public IList<SlotInfo> BibList
    {
        get { return m_BibList; }
    }
namespace BurnIn.UI.Modules.Operations.ViewModels
{
公共类SlotInfo
{
公共int SlotNumber;
公共字符串BibName;
}
公共类OvenViewModel:OvenViewModelBase
{
var m_BibList=新列表();
公共图书馆学家
{
获取{return m_BibList;}
}
还是这个

namespace BurnIn.UI.Modules.Operations.ViewModels
{
public class SlotInfo
{
    public int SlotNumber;
    public string BibName;
}

public class OvenViewModel : OvenViewModelBase
{
    List<SlotInfo> m_BibList = new List<SlotInfo>();
    public List<SlotInfo> BibList
    {
        get { return m_BibList; }
    }
namespace BurnIn.UI.Modules.Operations.ViewModels
{
公共类SlotInfo
{
公共int SlotNumber;
公共字符串BibName;
}
公共类OvenViewModel:OvenViewModelBase
{
List m_BibList=新列表();
公开列表图书管理员
{
获取{return m_BibList;}
}

问题在于SlotInfo元素是成员而不是属性。悬而未决的“帮助”提示是一种误导。

什么是OvenViewModelBase的可访问性?OvenViewModelBase也是公共的注意:问题似乎与声明为公共和(对我而言)的“SlotInfo”的可访问性有关BibList似乎更容易访问,因为它不是类作用域。此处的错误消息具有误导性,因为此代码不能认真地犯此错误。MSDN是否在IList上并显示为公共,因此您的代码无法生成任何比IList更容易访问的内容。此错误是一个转移视线的错误,真正的问题是其他问题。我不明白但是在这里。这条消息似乎是在转移注意力。今天早上,我以一种全新的视角和鼓励来看待eslewhere,我注意到SlotInfo元素是成员而不是属性,WPF可能只能看到属性。我将它们更改为属性,现在元素显示正确(尽管我还是得到了假飞越的小费)。