Jak mogę dodać właściwość „IsDirty” do jednostki LINQ do SQL?
Łączę moje podmioty z formularzem edycji w WPF. W DataTemplate chcę mieć możliwość ustawienia koloru tła kontenera głównego w DataTemplate, aby pokazać, że został zmieniony i zmiany te nie zostały jeszcze przesłane do bazy danych.
Oto bardzo prosty przykład, który pokazuje, o czym mówię (wybacz błędy):
<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>
Przykład pokazuje tylko „Am I dirty? Yes” lub „Am I dirty? No”, ale masz pomysł.
Aby to zrobić, muszę dodać własność publiczną do mojegoPozycja (klasa częściowa, prosta)które mogą określić, czy obiekt jest brudny, czy nie. To trudny kawałek.
public partial class Item
{
public bool IsDirty
{
get
{
throw new NotImplementedException("hurf durf");
}
}
}
Poza istotą jest to całkiem proste (o ile maszDataContext jednostka jest dołączona do). Wewnątrz, nie tak bardzo.
Jakie mam tutaj opcje?
Edytuj: Nie sądzę, aby istniało tutaj jedno dobre rozwiązanie, więc sugestie dotyczące obejść są mile widziane.
(Okej, podobne pytania istnieją, ale są o tym, jak to ustalićna zewnątrz samej jednostki i użyjDataContext jednostka jest dołączona do.)