WPF - DataTemplate دون وعاء، والبنود من الصفوف في الشبكة؟
سؤال
هل هناك آلية تعادل ItemsControl.ItemTemplate
التي تعمل مع Grid
؟ لدي مجموعة من العناصر وأود أن أقدم لهم من الصفوف في Grid
حتى أستطيع أن تعيين Grid.Column
إلى العناصر الفردية داخل القالب (على العكس من الصفوف في عنصر تحكم القائمة). هل هذا ممكن في برنامج الأغذية العالمي باستخدام التحكم القياسية؟
المحلول
وطيب، واستخدام ItemsControl مع الخاصية Grid.IsSharedSizeScope="true"
تعلق تطبيقها. وبعد ذلك، لItemTemplate الخاص بك، يمكنك استخدام <Grid>
مثلك عادة أن استثناء الآن عند إضافة ColumnDefinition
s تعيين سمة SharedSizeGroup
إلى اسم فريد لكل عمود. هكذا على سبيل المثال:
<ItemsControl Grid.IsSharedSizeScope="true">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="MyFirstColumn" />
<ColumnDefinition SharedSizeGroup="MySecondColumn" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding MyFirstProperty}"/ >
<TextBlock Grid.Column="1" Text="{Binding MySecondProperty}"/ >
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
لمزيد من المعلومات حول IsSharedSizeScope وSharedSizeGroup، الاختيار هذا الجزء من SDK ل. وتجدر الإشارة إلى أن RowDefinitions أيضا أن يكون لها SharedSizeGroup حتى أنك يمكن أن تفعل تخطيطات الأفقية كذلك.
نصائح أخرى
وربما أنا يساء فهمه مشكلتك، ولكن ليس هو بالضبط ما <لأ href = "http://msdn.microsoft.com/en-us/library/system.windows.controls.gridview.aspx" يختلط = "نوفولو noreferrer"> GridView يفعل؟