簡體   English   中英

如何在代碼(C#和WPF)中以動態方式和編程方式更新具有更多行和列的列表框中的網格

[英]How to update a grid in a listbox with more rows and columns dynamically and programmatically in code (C# and WPF)

我有一個ListBox,其中每個項目都有一個DataTemplate來定義其結構。 它最初具有一個包含6行4列的網格。 但是然后在運行時,我想向該DataTemplate中的該網格添加更多行和列到特定的ListBoxItem。 我怎么做? 我是否需要創建一個新的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>

實際上,還有另一個操作員問類似的問題。 您可以看一下他的問題。 他的問題實際上是您的答案。

他使用了一個派生自Grid的自定義控件,並將其稱為Board。 此外,他在運行時添加了行和列,這似乎正是您想要實現的。

這里是鏈接: Board類中的wpf MouseMove-Event不起作用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM