Привязка столбца DataGrid Silverlight к объекту не обновляется - PullRequest
0 голосов
/ 24 мая 2011

Я привязал DataGrid к IEnumerable .Объект имеет свойство EntityCollection , и это имя Доступы.Затем я положил это

    <sdk:DataGridTextColumn
                 Binding="{Binding Path=Accesses, Converter={StaticResource AccessesToTextConverter}}"
                 Header="Access"/>

Все работает нормально.Но когда я добавляю объект Access в доступы в моей модели представления, DataGrid не обновляется.Зачем?:)

Ответы [ 2 ]

0 голосов
/ 25 мая 2011

Вам необходимо указать TwoWay для режима, чтобы обновить интерфейс из кода с одной стороны:

<sdk:DataGridTextColumn                 
    Binding="{Binding Path=Accesses, Mode=TwoWay, Converter={StaticResource AccessesToTextConverter}}"  Header="Access"/>
0 голосов
/ 24 мая 2011

Вы добавляете элементы в коллекцию IEnumerable, с которой сетка данных не будет ничего делать.Ваша коллекция, к которой вы привязываете, должна реализовывать INotifyCollectionChanged, чтобы сетка данных автоматически обновлялась.

Если вы используете коллекцию, которая содержит результаты ваших служб RIA как свойство в коллекции объектов, которая назначается как ваш ItemsSource, убедитесь, чтоподключите событие CollectionChanged к событию PropertyChanged вашего объекта следующим образом:

    public EntityCollection accesses;
    public EntityCollection Accesses
    {
        get { return accesses; }
        set
        {
            OnPropertyChanged("Accesses");
            value.CollectionChanged += (sender, e) => { OnPropertyChanged("Accesses"); };
            accesses = value;
        }
    }
...