XAML无法看到IList的成员 - 不一致的可访问性?

时间:2012-06-28 00:09:58

标签: c# wpf xaml

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

我之前在另一个类/屏幕上做过这个,它工作正常。

我注意到在调试时,如果我将鼠标悬停在有效的类(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; }
        }

2 个答案:

答案 0 :(得分:0)

它可能与List和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
{
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; }
    }

答案 1 :(得分:0)

问题是SlotInfo元素是成员而不是属性。飞越“帮助”的提示是红鲱鱼。