Сделать свойство привязки внутренним, а не публичным во ViewModel
Я пробую разные вещи, используя MVVM. В нашей ViewModel свойства, которые привязаны к View являются публичными. Я беру пример привязки кнопки. Вот простой пример.
View.xaml:
ViewModel.cs
private ICommand _testButtonCommand;
public ICommand TestButtonCommand
{
get { return _testButtonCommand?? (_testButtonCommand= new RelayCommand(SomeMethod)); }
}
Вот мой вопрос, что мы можем сделатьTestButtonCommand
внутренний вместо публичного? Внутренние средства доступны для текущего проекта, так что это не должно быть проблемой? Но когда я попытался сделать это,т работал. Добавление точки останова в геттер не было достигнуто. Итак, почему мы не можем сделать это внутренним.
Вот ссылка с MSDN.
http://msdn.microsoft.com/en-us/library/ms743643.aspx
Свойства, которые вы используете в качестве свойств источника привязки для привязки, должны быть открытыми свойствами вашего класса. Явно определенные свойства интерфейса не могут быть доступны для целей привязки, равно как и защищенные, частные, внутренние или виртуальные свойства, которые не имеют базовой реализации.
Почему мы не можем этого сделать? В случае доступа внутренний такой же, как публичный, если работает в том же проекте. Тогда почему мы не можем использовать внутренний здесь. Должна быть причина, по которой они должны быть публичными, и я ищу эту причину.
internal ICommand TestButtonCommand { ...... }