Я связываю свои сущности с формой редактирования в WPF. В DataTemplate я хочу иметь возможность установить цвет фона корневого контейнера в DataTemplate, чтобы показать, что он был изменен, и эти изменения еще не были отправлены в базу данных.
Вот очень простой пример, который демонстрирует, о чем я говорю (простите за ошибки):
<Page ...>
<Page.DataContext>
<vm:MyPageViewModel /> <!-- Holds reference to the DataContext -->
</Page.DataContext>
<ItemsControl
ItemsSource = {Binding Items}>
<ItemsControl.Resources>
<DataTemplate
DataType="Lol.Models.Item"> <!-- Item is L2S entity -->
<!-- In real life, I use styles to set the background color -->
<TextBlock Text="{Binding IsDirty, StringFormat='Am I dirty? /{0/}'}"/>
</DataTemplate>
</ItemsControl.Resources>
</ItemsControl>
</Page>
В примере просто выводится «Я грязный? Да» или «Я грязный? Нет», но вы поняли.
Для этого мне нужно добавить открытое свойство к моему Item (частичный класс, простой) , которое может определить, является ли объект грязным или нет . Это сложная задача.
public partial class Item
{
public bool IsDirty
{
get
{
throw new NotImplementedException("hurf durf");
}
}
}
За пределами сущности это довольно просто (если у вас есть DataContext , к которому присоединена сущность). Внутри не так много.
Какие у меня есть варианты?
Edit: я не думаю, что есть одно хорошее решение здесь, поэтому предложения для обходных путей приветствуются.
(Хорошо, подобные вопросы существуют, но они все о том, как определить это из вне самой сущности и использовать DataContext , к которой присоединена сущность.)