Como posso adicionar uma propriedade "IsDirty" a uma entidade LINQ to SQL?
Eu estou vinculando minhas entidades a um formulário de edição no WPF. Em um DataTemplate, desejo definir a cor do plano de fundo do contêiner raiz em um DataTemplate para mostrar que ele foi alterado e essas alterações ainda não foram enviadas ao banco de dados.
Aqui está um exemplo muito simples que demonstra o que estou falando (perdoe erros):
<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>
O exemplo apenas mostra "Estou sujo? Sim" ou "Estou sujo? Não", mas você entendeu.
Para fazer isso, preciso adicionar uma propriedade pública ao meuItem (classe parcial, simples)que pode determinar se a entidade está suja ou não. Essa é a parte difícil.
public partial class Item
{
public bool IsDirty
{
get
{
throw new NotImplementedException("hurf durf");
}
}
}
Fora da entidade, é bem simples (contanto que você tenha oDataContext a entidade está anexada a). Por dentro, não tanto.
Quais são minhas opções aqui?
Edit: Eu não acho que há uma boa solução aqui, então sugestões para soluções alternativas são bem-vindas.
(Ok, existem questões semelhantes, mas elas são sobre como determinar issolado de fora da própria entidade e usar oDataContext a entidade está ligada a.)