Почему Browsable(false) не скрывает столбцы в DataGrid

В моем приложении WPF я хочу скрыть столбец в DataGrid с привязкой ItemsSource, добавив [Browsable (false)] к некоторым свойствам. Но с Browsable (false) или без него все столбцы видны.

Моя модель:

public class Room : INotifyPropertyChanged
{
    private int id;
  ...
    [Browsable(false)]
    public int Id
    {
        get
        {
            return this.id;
        }
        set
        {
            this.id = value;
            this.OnPropertyChanged("Id");
        }
    }
    ...
    public Room()
    {
    }
    protected virtual void OnPropertyChanged(string propertyName)
    {
        PropertyChangedEventHandler propertyChangedEventHandler = this.PropertyChanged;
        if (propertyChangedEventHandler != null)
        {
            propertyChangedEventHandler(this, new PropertyChangedEventArgs(propertyName));
        }
    }
    public event PropertyChangedEventHandler PropertyChanged;
}

Вид:

<DataGrid Grid.Row="1" ItemsSource="{Binding Rooms}" SelectedItem="{Binding SelectedRoom, Mode=TwoWay}" />

Как я могу использовать Browsable(false), чтобы скрыть столбцы?


person tauri    schedule 15.07.2015    source источник


Ответы (3)


Боюсь, вы не можете. Атрибут Browsable влияет только на представление свойств визуального дизайнера, он НЕ влияет во время выполнения...

Для получения дополнительной информации посетите страницу MSDN . о BrowsableAttribute.

person almulo    schedule 15.07.2015


Не вызывайте this.OnPropertyChanged("Id"); в своем коде.

person user5467558    schedule 20.10.2015