【发布时间】:2020-10-09 05:35:41
【问题描述】:
我正在尝试创建一个具有可变数量按钮的自定义 MessageBox,此数字等于 ItemsSource 的计数。按钮将放置在 UniformGrid 中。 ButtonView 的 ItemsSource 被分配给 ObservableCollection Buttons。代码无法识别 Buttons.Count。如何正确分配 UniformGrid Columns 值?
<ItemsControl Grid.Row="2" x:Name="ButtonView">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="{Binding Buttons.Count}">
</UniformGrid>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate DataType="Button">
<Button Margin="2" Content="{Binding Content}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
【问题讨论】:
-
请注意,当您将 UIElement 集合或派生类型分配给 ItemsControl 的 ItemsSource 时,ItemTemplate 将被忽略,因为这些项目不需要“模板化”。使用
Content="{Binding Content}"创建新 Button 的 Button 的 DataTemplate 显然没有多大意义。
标签: wpf xaml itemscontrol