我的数据网格有用户可定义的列,基本上归结为
switch(column_title)
{
case "foo": binding = new Binding("Model.Fonz");
//etc.
}
并将绑定应用于列。
现在我需要使用配置的列转储到csv。因为它可能是我的ui中使用的不同列集,我绝对不希望维护两个巨大的switch语句,我基本上喜欢这样的函数:
object GetBoundProperty(object o, System.Windows.Data.Binding binding)
如果它令人讨厌容易,我不会感到惊讶,但它目前超出我的.NET知识范围,并且我几乎没有希望通过反射解析时期,除非我完全必须这样做。谢谢!
答案 0 :(得分:1)
让我提出别的建议。我只是不喜欢从模型中通过数据绑定获取数据的想法,当你可以直接从模型中获取数据时...而不是有两个大的开关你可以为每列创建一个类,它将处理你的数据请求。在伪代码中它看起来像这样:
ColumnData fonzColumnData = ColumnsFactory.Create(columnTitle);
// for bindings:
Binding binding = fonzColumnData.Binding;
// for CSV:
string csvData = fonzColumn.CSVData;
// ...