在其他代码中重用我的wpf绑定工厂

时间:2010-02-24 06:43:03

标签: wpf data-binding

我的数据网格有用户可定义的列,基本上归结为

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

并将绑定应用于列。

现在我需要使用配置的列转储到csv。因为它可能是我的ui中使用的不同列集,我绝对不希望维护两个巨大的switch语句,我基本上喜欢这样的函数:

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

如果它令人讨厌容易,我不会感到惊讶,但它目前超出我的.NET知识范围,并且我几乎没有希望通过反射解析时期,除非我完全必须这样做。谢谢!

1 个答案:

答案 0 :(得分:1)

让我提出别的建议。我只是不喜欢从模型中通过数据绑定获取数据的想法,当你可以直接从模型中获取数据时...而不是有两个大的开关你可以为每列创建一个类,它将处理你的数据请求。在伪代码中它看起来像这样:

ColumnData fonzColumnData = ColumnsFactory.Create(columnTitle);

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