Используете ли вы шаблон MVVM (модель-представление-модель)? Мне кажется, и частично из других ответов, что вы не можете сделать это с пользовательскими атрибутами, как вы хотите. Но мне также кажется, что ваш TestPresentationBO
действительно похож на «модель просмотра» для TestBO
. Модель представления - это своего рода обертка или суррогат для бизнес-класса или класса логики, а это то, что вам нужно. (Это краткое изложение модели представления может быть не на 100% точным; я только начинаю с MVVM.)
Вы можете создать TestBOViewModel
для переноса TestBO
, а затем передать коллекцию TestBOViewModel
в сетку данных. Конечно, вы можете украсить свойства, обнажив обернутый класс, [Header("Object's name")]
и т. Д. Это не использует наследование, но я не понимаю, почему вам нужно использовать наследование в этой ситуации. Тем не менее, при использовании модели представления чисто отделяется ваша презентация (представление) от ваших данных (модели) с помощью оболочки (модель представления).
Для получения дополнительной информации о шаблоне MVVM я нашел интересное прочтение: Приложения WPF с шаблоном проектирования Model-View-ViewModel .
Примерно так. Конечно, вы можете добавить здесь валидацию и другие полезности.
public class TestBOViewModel // extend from DependencyObject
{ // if you want to use dependency properties
private TestBO _myBO;
public TestBOViewModel(TestBO bo)
{
_myBO = bo;
}
[Header("NoDisp")]
public int ID
{
get { return _myBO.ID; }
set { _myBO.ID = value; }
}
}