开发者

WPF DataGrid: How to bind to a custom property

I have a Customer class generated from LINQ. This class is being used in many places. I can bind a collection of Customers to a DataGrid (开发者_运维百科WPF). I would like to add an extra column to the DataGrid. The column data would depend on how the Customer class is used. Here are the options I have tried:

  1. Add the extra property in the Customer class. This works but the property does not belong here since it may depend on how the class is used.
  2. Create another class that derives from Customer. This does not work as we cannot cast Customer to the derived class and a list of Customers is what I get back from database.
  3. Create another class that contains a Customer and reimplements all the relevant properties. This is ugly.
  4. Create an extension method for the desired property. Unfortunately, we cannot bind a DataGrid column to an extension method.

At this point, these options either do not work or are not ideal. I would appreciate any suggestion.


This sounds like the job of a view model, so I would favour option 3, and create a CustomerViewModel which wraps your Customer model and adds the additional property you require. I'm assuming that this additional property is just for display purposes only which is why you are reluctant to add it to the Customer model.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜