Если у меня есть класс, как так:Когда использовать общественную или частную собственность?
public class MyClass:INotifyPropertyChanged
{
private Visibility isVisible;
private ObservableCollection<string> names;
public Visibility IsVisible
{
get{ return isVisible;}
set { isVisible = value; OnPropertyChanged("IsVisible");}
}
public ObservableCollection<string> Names
{
get { return names;}
set { names = value; OnPropertyChanged("Names");}
}
//ctor
public MyClass(){
names = new ObservableCollection<string>();
}
//INotifyPropertyChanged implementation
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
}
Перед любой из обезглавит меня - я сделал совсем немного того, чтобы искать и нашел смешанный мешок ответов ...
Могу ли я изменить свойства/переменные
public
илиprivate
для использования в моих привязках? то есть у меня проблема, когда добавление вnames
коллекции вызоветOnPropertyChanged
, а изменениеisVisible
НЕ запускаетOnPropertyChanged
. Мое предположение состоит в том, что это происходит потому, чтоnames
являетсяObservableCollection
где, какisVisible
не но я не уверен ...Если я должен использует
public
свойства - что потребность в наличии в частных?
Вы знакомы с «уровнем доступа». Я бы предложил прочитать «Свойства и уровень доступа» – MethodMan