Обновление SilverLight Datagrid - PullRequest
       0

Обновление SilverLight Datagrid

1 голос
/ 18 января 2011

У меня есть Silverlight Datagrid, источник данных которого я обновляю каждые 5 секунд.Хотелось бы, чтобы сетка обновлялась, чтобы фокус был на последнем ряду, а не на первом.Я попытался установить свойство SelectedIndex сетки в качестве последней строки, но оно не сработало.

Подробности:

Я связываю DataGrid со свойством ObservalbleList (Of MyObject)в его ViewModel, а SelectedIndex также является свойством ViewModel.Оба свойства вызывают событие измененного свойства (можно наблюдать за этой работой, видя, что DataGrids DataSource явно изменяется, но SelectedIndex никогда не устанавливается.

При поиске проблемы в Google, я прочитал отчеты, которые устанавливают SelectedIndex для DataGridявляется известной проблемой, но не нашли обходной путь. Есть идеи?

1 Ответ

0 голосов
/ 15 июня 2011

В вашей модели представления создайте свойство для CurrentItem / Entity следующим образом:

    private Customer customer;
    public Customer CurrentCustomer
    {
        get { return this.customer; }
        set
        {
            if (this.customer!= value)
            {
                this.customer= value;
                OnPropertyChanged("CurrentCustomer");
            }
        }
    }

После загрузки всех ваших клиентов в вашей модели представления установите CurrentCustomer что-то вроде:

CurrentCustomer = context.Customers.Last();

В вашем View / XAML привязать выбранную сетку данных элемент к CurrentCustomer как:

SelectedItem="{Binding CurrentCustomer, Mode=TwoWay}"

Просто сбрасывайте CurrentCustomer, как указано выше, после каждого 5-секундного обновления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...