كيفية القيام بما يلي: استخدام نمط رئيسي تفصيلي مع البيانات ذات التسلسل الهرمي
يوضح هذا المثال كيفية تنفيذ سيناريو رئيسي تفصيلي.
مثال
في هذا المثال, LeagueList هو مجموعة من Leagues. كل League يحتوي على Name و مجموعة من Divisions ، و كل Division له اسم و مجموعة من Teams. كل Team له اسم فريق.
<Window
xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
xmlns:src="clr-namespace:SDKSample"
Width="400" Height="180"
Title="Master-Detail Binding"
Background="Silver">
<Window.Resources>
<src:LeagueList x:Key="MyList"/>
...
<DockPanel DataContext="{Binding Source={StaticResource MyList}}">
<StackPanel>
<Label>My Soccer Leagues</Label>
<ListBox ItemsSource="{Binding}" DisplayMemberPath="Name"
IsSynchronizedWithCurrentItem="true"/>
</StackPanel>
<StackPanel>
<Label Content="{Binding Path=Name}"/>
<ListBox ItemsSource="{Binding Path=Divisions}" DisplayMemberPath="Name"
IsSynchronizedWithCurrentItem="true"/>
</StackPanel>
<StackPanel>
<Label Content="{Binding Path=Divisions/Name}"/>
<ListBox DisplayMemberPath="Name" ItemsSource="{Binding Path=Divisions/Teams}"/>
</StackPanel>
</DockPanel>
</Window>
التالي هو لقطة من المثال. Divisions ListBox يقوم تلقائياً بتعقب التحديدات في Leagues ListBox و يعرض البيانات المطابقة. Teams ListBox يتعقب التحديدات في عنصر تحكم ListBox الأخرى.
الأمرين الذين يجب ملاحظتهم في هذا المثال:
عناصر تحكم ListBox الثلاثة مربوطين لنفس المصدر. قم بتعيين خاصية Path من الربط لتعيين مستوى البيانات التي تريد من ListBox عرضه.
يجب عليك تعيين خاصية IsSynchronizedWithCurrentItem إلى true على عناصر تحكم ListBox التابعين للاختيار الذي تتعقبه. إعداد هذه الخاصية يضمن أن العنصر المحدد يعيين دوماً كـ CurrentItem. بدلاً من ذلك، إذا أحضر ListBox له البيانات من CollectionViewSource، فإنه يزامن الاختيار و العملة تلقائياً.
التقنية مختلفة قليلاً عند استخدام بيانات XML. على سبيل المثال ، راجع كيفية القيام بما يلي: استخدام نمط رئيسي تفصيلي مع بيانات ذات التسلسل الهرمي XML.
راجع أيضًا:
المهام
كيفية القيام بما يلي: ربط مجموعة و عرض معلومات اعتماداً على الاختيار