2

我有一个 ListBox,其中的每个项目都有一个 DataTemplate 来定义其结构。它最初有一个包含 6 行和 4 列的 Grid。但是在运行时,我想在那个 DataTemplate 中的那个 Grid 中添加更多的行和列到一个特定的 ListBoxItem。我怎么做?我是否需要创建一个包含添加了行和列的 Grid 的新 DataTemplate?我已经看到了很多看起来像我想要实现的示例,现在这些示例与所有 Bindings、ObservableCollections、ViewModel 等混淆了。我应该怎么办?以下是该特定 ListBox 的 WPF 代码:

    <ListBox Margin="0,138,28.58,156" Name="list" HorizontalAlignment="Right" Width="387.235" SelectionChanged="list_SelectionChanged">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto" />
                        <RowDefinition Height="Auto" />
                        <RowDefinition Height="Auto" />
                        <RowDefinition Height="Auto" />
                        <RowDefinition Height="Auto" />
                        <RowDefinition Height="Auto" />
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition Width="Auto" />
                    </Grid.ColumnDefinitions>

                </Grid>

            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
4

1 回答 1

1

实际上还有另一个操作问类似的问题。你可以看看他的问题。他的问题实际上就是你的答案。

他使用了一个从 Grid 派生的自定义控件,他称之为 Board。此外,他在运行时添加了行和列,这似乎正是您想要实现的。

这是链接: Board 类中的 wpf MouseMove-Event 不起作用

于 2013-04-20T17:57:46.850 回答