我结合我的实体在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>
这个例子只是打印出“我是肮脏的吗?”或“我是肮脏的?没有”,但你的想法。
要做到这一点,我需要一个公共属性添加到我的项目 (部分类,简单),可确定该实体是脏的 。 这是艰难的位。
public partial class Item
{
public bool IsDirty
{
get
{
throw new NotImplementedException("hurf durf");
}
}
}
实体之外,这是很简单的(只要你有DataContext的实体连接到)。 里面,没有这么多。
什么是我选择这里?
编辑:我不认为这里有一个很好的解决方案,因此对于解决办法的建议是值得欢迎的。
(好吧,类似的问题存在,但它们都是关于如何从实体本身之外确定这一点,并使用DataContext的实体连接到。)