Reagowanie na zmiany i propagowanie ich

Po utworzeniu, usunięciu lub zaktualizowaniu elementu można napisać kod, który propaguje zmianę do innych części modelu lub do zasobów zewnętrznych, takich jak pliki, bazy danych lub inne składniki.

Odwołanie

Zgodnie z wytycznymi należy wziąć pod uwagę następujące techniki w następującej kolejności:

Technika Scenariusze Więcej informacji
Zdefiniuj właściwość domeny obliczeniowej. Właściwość domeny, której wartość jest obliczana na podstawie innych właściwości w modelu. Na przykład cena, która jest sumą cen powiązanych elementów. Obliczone i niestandardowe właściwości przechowywania
Zdefiniuj właściwość domeny magazynu niestandardowego. Właściwość domeny przechowywana w innych częściach modelu lub zewnętrznie. Można na przykład przeanalizować ciąg wyrażenia w drzewie w modelu. Obliczone i niestandardowe właściwości przechowywania
Zastępowanie procedur obsługi zmian, takich jak OnValueChanging i OnDeleting Zachowaj synchronizację różnych elementów i zachowaj synchronizację wartości zewnętrznych z modelem.

Wartości ograniczeń do zdefiniowanych zakresów.

Wywoływane bezpośrednio przed i po wartości właściwości i innych zmian. Możesz zakończyć zmianę, zgłaszając wyjątek.
Obsługa zmian wartości właściwości domeny
Reguły Możesz zdefiniować reguły, które są kolejkowane do wykonania tuż przed końcem transakcji, w której nastąpiła zmiana. Nie są one wykonywane w cofnij lub wykonaj ponownie. Użyj ich, aby zachować jedną część sklepu w synchronizacji z innym. Reguły propagujące zmiany w modelu
Przechowywanie zdarzeń Magazyn modelowania zawiera powiadomienia o zdarzeniach, takich jak dodawanie lub usuwanie elementu lub linku albo zmienianie wartości właściwości. Zdarzenie jest również wykonywane w obszarze Cofnij i Wykonaj ponownie. Użyj zdarzeń magazynu, aby zaktualizować wartości, które nie znajdują się w magazynie. Programy obsługi zdarzeń propagujące zmiany poza modelem
Zdarzenia platformy .NET Kształty mają programy obsługi zdarzeń, które reagują na kliknięcia myszy i inne gesty. Musisz zarejestrować się w celu uzyskania tych zdarzeń dla każdego obiektu. Rejestracja jest zwykle wykonywana w przesłonięciu InitializeInstanceResources i musi być wykonywana dla każdego elementu.

Te zdarzenia zwykle występują poza transakcją.
Instrukcje: Przechwytywanie kliknięć w kształcie lub elemencie Decorator
Reguły granic Reguła granic jest używana specjalnie do ograniczenia granic kształtu. BoundsRules — ograniczenie lokalizacji i rozmiaru kształtu
Reguły wyboru Reguły wyboru ograniczają konkretnie to, co użytkownik może wybrać. Instrukcje: Ograniczanie bieżącego wyboru i uzyskiwanie dostępu do niego
OnAssocatedPropertyChanged Wskaż stany elementów modelu przy użyciu cech kształtów i łączników, takich jak cień, groty strzałek, kolor i szerokość linii oraz styl. Aktualizowanie kształtów i łączników, aby odzwierciedlały model

Porównywanie reguł i przechowywanie zdarzeń

Powiadomienia o zmianach, reguły i zdarzenia są uruchamiane w przypadku wystąpienia zmian w modelu.

Reguły są zwykle stosowane w transakcji końcowej, w której nastąpiła zmiana, a zdarzenia są stosowane po zatwierdzeniu zmian transakcji.

Użyj zdarzeń magazynu, aby zsynchronizować model z obiektami spoza magazynu i regułami, aby zachować spójność w magazynie.

  • Tworzenie reguł niestandardowych Tworzy się regułę niestandardową jako klasę pochodną na podstawie reguły abstrakcyjnej. Należy również powiadomić platformę o regule niestandardowej. Aby uzyskać więcej informacji, zobacz Reguły propagacji zmian w modelu.

  • Subskrybowanie zdarzeń Przed zasubskrybowaniem zdarzenia utwórz procedurę obsługi zdarzeń i deleguj. Następnie użyj EventManagerDirectorywłaściwości , aby zasubskrybować zdarzenie. Aby uzyskać więcej informacji, zobacz Programy obsługi zdarzeń propagują zmiany poza modelem.

  • Cofanie zmian Po cofnięciu transakcji są zgłaszane zdarzenia, ale reguły nie są stosowane. Jeśli reguła zmieni wartość i cofniesz zmianę, wartość zostanie zresetowana do oryginalnej wartości podczas akcji cofania. Po wystąpieniu zdarzenia należy ręcznie zmienić wartość z powrotem na oryginalną wartość. Aby dowiedzieć się więcej na temat transakcji i cofania, zobacz How to: Use Transactions to Update the Model (Instrukcje: używanie transakcji do aktualizowania modelu).

  • Przekazywanie argumentów zdarzeń do reguł i zdarzeń Oba zdarzenia i reguły są przekazywane EventArgs parametr zawierający informacje o sposobie zmiany modelu.