gpt4 book ai didi

c# - 如何将 ItemsControl(在网格外)绑定(bind)到网格?

转载 作者:太空宇宙 更新时间:2023-11-03 21:01:47 24 4
gpt4 key购买 nike

我有一个 View 模型,其中包含一个名为 MyLabel 的对象的 ObservableCollection。这些对象有 3 个属性(content、rowNr、columnNr),它们应该分别绑定(bind)到 Content、Grid.Row 和 Grid.Column 属性。

我定义 ItemsControl 的原因是因为它在我的网格中不起作用,也就是说我无法绑定(bind) rowNr 和 columnNr,因为网格 Grid.Column/Grid.Row 属性不断覆盖我的数据。

我怎样才能让这个工作让我的标签在网格内?

<StackPanel>
<ItemsControl ItemsSource="{Binding Path=MyLabelList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Label Content="{Binding content}" Grid.Column="{Binding columnNr}" Grid.Row="{Binding rowNr}" Style="{StaticResource MyLabel}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>

<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
</Grid>
</StackPanel>

最佳答案

尝试使用 Grid 作为 ItemsControlItemsPanel:

<ItemsControl ItemsSource="{Binding Path=MyLabelList}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
</Grid>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="Grid.Column" Value="{Binding columnNr}" />
<Setter Property="Grid.Row" Value="{Binding rowNr}" />
</Style>
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Label Content="{Binding content}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>

关于c# - 如何将 ItemsControl(在网格外)绑定(bind)到网格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44843932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com