2010-02-24 2 views
0

У меня есть определенный пользователь столбцы для моей сетки данных, которая в основном сводится кПовторного использование моего МОФ Binding завода в другом коде

switch(column_title) 
{ 
case "foo": binding = new Binding("Model.Fonz"); 
//etc. 
} 

и связывание будет применяться к колонку.

Теперь мне нужно сбросить csv с помощью сконфигурированных столбцов. Как это может быть другой столбец установлено, что используется в моем пользовательском интерфейсе, и я определенно не хочу, два огромных заявления переключатель, чтобы поддерживать, я по существу хотел такую ​​функцию:

object GetBoundProperty(object o, System.Windows.Data.Binding binding) 

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

ответ

1

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

ColumnData fonzColumnData = ColumnsFactory.Create(columnTitle); 

// for bindings: 
Binding binding = fonzColumnData.Binding; 
// for CSV: 
string csvData = fonzColumn.CSVData; 
// ... 
+0

Спасибо за предложение, возможно, мудрый маршрут. Самая большая проблема заключается в том, что я использую одну и ту же фабрику для двух разных (очень похожих) моделей/моделей просмотра, и фабрике все равно, поскольку Binding просто берет строку. Я думаю, что ColumnData.CSVData может быть func , и, вероятно, подходящее время для создания интерфейса для совместной работы двух моделей. Не решение с низким кодом, на которое я надеялся, но, вероятно, улучшит свое приложение. – Thomas

Смежные вопросы