为什么我有一个(错误没有实现接口成员)silverlight

时间:2012-01-03 16:45:13

标签: c# wpf silverlight interface partial

PagesCollection.ViewModel.PagePictureCommands.cs

namespace PagesCollection.ViewModel
{
    public partial class PagePicturesViewModel : IPropertieCommands
    {
        private ICommand deleteAlbum;
        public ICommand _CreateAlbum
        {
            get
            {
                if (createAlbum == null)
                    createAlbum = new Model.DelegateCommand(CreateAlbum, CanAdd);
                return createAlbum;
            }
        }
    }
}

PagesCollection.ViewModel.PagePicturesViewModel.cs

namespace PagesCollection.ViewModel
{
    public partial class PagePicturesViewModel : IPictureMethods
    {
        public void CreateAlbum(object param)
        {...}
    }
}

我有一个2接口和一个分为2的类。每个类的一半都实现了一些接口。但是我有一个非常奇怪的错误。 ('PagesCollection.ViewModel.PagePicturesViewModel'未实现接口成员'PagesCollection.Model.IPropertieCommands._CreateAlbum.set') 你可以帮我吗?

3 个答案:

答案 0 :(得分:3)

你不明白是什么,因为错误信息似乎很具描述性:

  

PagesCollection.ViewModel.PagePicturesViewModel'未实现   接口成员   “PagesCollection.Model.IPropertieCommands._CreateAlbum.set

我怀疑界面如下:

public interface IPropertieCommands
{
   ICommand _CreateAlbum { get; set; }
}

其中定义了您必须在该属性上设置一个setter!

所以只需在实现中添加一个setter:

public ICommand _CreateAlbum
{
    get
    {
        if (createAlbum == null)
            createAlbum = new Model.DelegateCommand(CreateAlbum, CanAdd);
        return createAlbum;
    }
    set
    {
        createdAlbum = value; // or something else sensible!
    }
}

答案 1 :(得分:1)

看起来你的IPropertieCommands界面要求_CreateAlbum属性有一个setter - 但你只实现了一个getter。

答案 2 :(得分:0)

public interface IPropertieCommands
{
   ICommand _CreateAlbum { get;}
}

如果你不希望这个属性有一个setter(readonly),你可以使用上面的接口代码。