Are you using the MVVM model (model view representation model)? It seems to me, and in part from other answers, that you cannot do this with custom attributes as you want. But it also seems to me that your TestPresentationBO really looks like the "View Model" for TestBO . A view model is a kind of wrapper or surrogate for a business class or logical class, which is basically what you want. (This summary of the view model may not be 100% accurate; I'm just starting out with MVVM myself.)
You can create a TestBOViewModel to port a TestBO , and then pass the TestBOViewModel collection to the datagrid. Of course, you can decorate properties by exposing the wrapped class [Header("Object name")] , etc. This does not use inheritance, but I do not understand why you need to use inheritance in this situation. However, using the presentation model, it purely separates your presentation (presentation) from your data (model) using a wrapper (viewing model).
For more information on the MVVM pattern, I found this interesting: WPF applications with the Model-View-ViewModel design pattern .
Something like that. Of course, here you can add validation and other useful properties.
public class TestBOViewModel // extend from DependencyObject {
source share