Telerik GridView в Silverlight с помощью MVVM - PullRequest
0 голосов
/ 24 октября 2010

Я использую teleriks gridview в проекте mvvm silverlight. Я изо всех сил пытаюсь заставить редактирование строки работать. Если дважды щелкнуть ячейку, я смогу изменить текст этой строки. У меня есть команда для кнопки сохранения. но когда я смотрю на свою прогу ObservableCollection, я не вижу изменений. поэтому я пошел и изменил все с observableCollection на просто общий список, и теперь я с трудом связываю данные с сеткой. С помощью наблюдаемой коллекции я могу изначально привязать данные к сетке.

    private ObservableCollection<Program> _programResults;
    public ObservableCollection<Program> ProgramResults
    {
        get { return _programResults; }
        set { SetObject(ref _programResults, value, "ProgramResults"); }
    }

<telerik:RadGridView Margin="5,5,5,5" ShowGroupPanel="False" Height="300" ItemsSource="{Binding ProgramResults, Mode=TwoWay}" SelectedItem="{Binding SelectedProgram, Mode=TwoWay}" AutoGenerateColumns="False" VerticalAlignment="Top">
                <telerik:RadGridView.Columns>
                    <telerik:GridViewDataColumn Header="Program ID" DataMemberBinding="{Binding ProgramResults.ProgramID}" MinWidth="300"></telerik:GridViewDataColumn>
                    <telerik:GridViewDataColumn Header="Program Name" DataMemberBinding="{Binding Name}" MinWidth="300"></telerik:GridViewDataColumn>                       
            </telerik:RadGridView>

Ответы [ 2 ]

1 голос
/ 28 октября 2010

gevjen,

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

<telerik:GridViewDataColumn Header="Program Name" DataMemberBinding="{Binding Name, Mode=TwoWay}" MinWidth="300"></telerik:GridViewDataColumn>                        

Теперь вы, вероятно, не будете придумывать какой-либо способ решить, какие записи изменились при сборе сохранения.

Возможно, создайте коллекцию в вашей ViewModel и на вашем наборе каждого из ваших объектов SelectedProgram, вставьте Id в эту коллекцию, а затем выполните цикл по этой коллекции при запуске Save и обновите эти записи.

Это предложения для ObservableCollection. Вам нужно убедиться, что ваши объекты реализуют INPC. Проверьте окно вывода на наличие ошибок привязки данных, если у вас возникли проблемы.

0 голосов
/ 22 января 2011

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

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