Sdílet prostřednictvím


Oznámení o změnách v datové vazbě Windows Forms

Jedním z nejdůležitějších konceptů datové vazby Windows Forms je oznámení o změně. Pokud chcete zajistit, aby ovládací prvky zdroje dat a vázané ovládací prvky vždy měly nejnovější data, musíte přidat oznámení o změně datové vazby. Konkrétně chcete zajistit, aby vázané ovládací prvky byly upozorněny na změny, které byly provedeny ve zdroji dat, a zdroj dat je informován o změnách provedených vázaných vlastnostech ovládacího prvku.

V závislosti na druhu datové vazby existují různé druhy oznámení o změnách:

  • Jednoduchá vazba, ve které je jedna vlastnost ovládacího prvku vázána na jednu instanci objektu.

  • Vazba založená na seznamu, která může obsahovat jednu vlastnost ovládacího prvku vázanou na vlastnost položky v seznamu nebo vlastnost ovládacího prvku vázané na seznam objektů.

Kromě toho pokud vytváříte ovládací prvky Modelu Windows Forms, které chcete použít pro datovou vazbu, musíte u ovládacích prvků použít PropertyNameZměněný vzor, aby se změny vázané vlastnosti ovládacího prvku rozšířily do zdroje dat.

Oznámení o změnách pro jednoduchou vazbu

Pro jednoduchou vazbu musí obchodní objekty poskytovat oznámení o změně, když se změní hodnota vázané vlastnosti. Můžete toho dosáhnout vystavením události PropertyNamepro každou jednotlivou vlastnost vašeho obchodního objektu a vázáním obchodního objektu na ovládací prvky pomocí BindingSource nebo preferovanou metodou, ve které váš obchodní objekt implementuje rozhraní INotifyPropertyChanged a vyvolá událost PropertyChanged, když se změní hodnota vlastnosti. Další informace naleznete v tématu Postupy: Implementace rozhraní INotifyPropertyChanged. Při použití objektů, které implementují rozhraní INotifyPropertyChanged, není nutné použít BindingSource k vytvoření vazby objektu na ovládací prvek, ale použití BindingSource se doporučuje.

Oznámení o změně vazby List-Based

Windows Forms závisí na vázaném seznamu, aby poskytl informace o změně vlastností (změní se hodnota vlastnosti položky seznamu) a změně v seznamu (položka je odstraněna nebo přidána do seznamu) svázaným ovládacím prvkům. Proto seznamy používané pro datové vazby musí implementovat IBindingList, který poskytuje oba typy oznámení o změnách. BindingList<T> je obecná implementace IBindingList a je určená pro použití s datovými vazbami Windows Forms. Můžete vytvořit BindingList<T> obsahující typ obchodního objektu, který implementuje INotifyPropertyChanged a seznam automaticky převede PropertyChanged události na události ListChanged. Pokud vázaný seznam není IBindingList, je nutné vytvořit vazbu seznamu objektů s ovládacími prvky Windows Forms pomocí komponenty BindingSource. Komponenta BindingSource poskytne převod vlastnosti na seznam podobně jako BindingList<T>. Další informace naleznete v tématu Postupy: Vyvolání oznámení o změnách pomocí BindingSource a rozhraní INotifyPropertyChanged.

Oznámení o změně vlastních ovládacích prvků

Nakonec na straně ovládacího prvku musíte zveřejnit PropertyNameZměněná událost pro každou vlastnost navrženou tak, aby byla svázána s daty. Změny vlastnosti ovládacího prvku se pak rozšíří do vázaného zdroje dat. Další informace najdete v tématu Postupy: Použití vzoru PropertyNameChanged

Viz také