Привязка таблицы данных WPF к DataTable со сложным типом - PullRequest
1 голос
/ 19 марта 2010

У меня есть класс, который содержит данные из некоторой модели. Этот класс имеет метаданные вместе с фактическим значением.

class ServerValue {

    public int SomeId {get;}
    public int SomeOtherId {get;}
    public DateTime LastChanged {get;}

    public object Value {get;set;}

    // this lets me show the value, but how do i update it from the grid?
    public override string ToString(){
        return Value.ToString();
     }
}

Теперь у меня также есть класс MyDataTable, производный от DataTable, который имеет все виды логики. Он вызывает сервер, получает кучу значений ServerValues ​​и помещает их в строки и столбцы.

Наконец, у меня есть WPF DataGrid, который я связываю с MyDataTable и данные отображаются, потому что DataGrid вызывает ToString для каждого ServerValue и возвращает значение для отображения. Ура пока.

Теперь я хочу иметь двухстороннюю привязку данных, поэтому входные данные в сетке записываются обратно в ServerValue. Поэтому я хочу связать ячейки сетки со свойством Value ServerValue вместо самого ServerValue.

Сейчас ServerValue ячейки DataGrid просто заменяется строкой. Я мог бы обойти это и все, но сначала я бы попробовал элегантный маршрут.

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

Возможно ли это? Я гуглил по этому поводу и ничего не могу по этому поводу.

Заранее спасибо,

John

1 Ответ

1 голос
/ 19 марта 2010

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

Определите конвертер для вашей привязки

http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx

...