Почему у меня (ошибка не реализует элемент интерфейса) silverlight - PullRequest
0 голосов
/ 03 января 2012

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 ]

3 голосов
/ 03 января 2012

Что вы не понимаете, потому что сообщение об ошибке выглядит довольно наглядно:

PagesCollection.ViewModel.PagePicturesViewModel 'не реализует член интерфейса «PagesCollection.Model.IPropertieCommands._CreateAlbum.set

Я подозреваю, что интерфейс выглядит так:

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

Что определяет, что вы должны иметь установщик для этого свойства!

Так что просто добавьте сеттер в вашу реализацию:

public ICommand _CreateAlbum
{
    get
    {
        if (createAlbum == null)
            createAlbum = new Model.DelegateCommand(CreateAlbum, CanAdd);
        return createAlbum;
    }
    set
    {
        createdAlbum = value; // or something else sensible!
    }
}
1 голос
/ 03 января 2012

Похоже, ваш интерфейс IPropertieCommands требует, чтобы свойство _CreateAlbum имело установщик - но вы реализовали только получатель.

0 голосов
/ 17 апреля 2018
public interface IPropertieCommands
{
   ICommand _CreateAlbum { get;}
}

Если вы не хотите, чтобы это свойство имело установщик (только для чтения), вы можете использовать свой интерфейсный код, как указано выше.

...