gpt4 book ai didi

wpf - 如何通过绑定(bind)将 RowDefinition 或 ColumnDefinition 动态添加到 Grid?

转载 作者:行者123 更新时间:2023-12-04 00:03:10 26 4
gpt4 key购买 nike

我正在尝试创建一个具有可变行数和列数的表。我正在使用 ItemsControl其中有一个 Grid作为它的ItemsPanel .我知道我可以设置Grid.RowGrid.Column每个项目通过其ItemContainerStyle .但是不知道怎么改行数和列数及其大小当我无法通过其名称访问网格时。

问题:

怎么修改RowDefinitionsColumnDefinitionsGrid在运行时 没有任何代码隐藏使用绑定(bind)?

这是 XAML 代码:

<ItemsControl Name="myItemsControl" ItemsSource="{Binding Cells}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Grid Name="myGrid">

<Grid.RowDefinitions>
<!-- unknown number of rows are added here in run-time -->
</Grid.RowDefinitions>

<Grid.ColumnDefinitions>
<!-- known number of columns are added here in run-time -->
</Grid.ColumnDefinitions>

</Grid>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style.../>
</ItemsControl.ItemContainerStyle>
</ItemsControl>

我尝试添加一些 RowDefinition在后面的代码中,但我找不到访问 myGrid 的方法以其名称(或任何其他方式),因为它位于 ItemsPanelTemplate 中.

我想知道是否有任何方法可以以编程方式 添加或修改RowDefinitions在运行时 ?

最佳答案

您可以使用attached properties对于 Grid修改RowDefinitionsColumnDefinitions当设置或更改这些属性时。

它将允许您编写 Grid像这样:

<Grid local:GridHelpers.RowCount="{Binding MaxGridRow}"
local:GridHelpers.ColumnCount="3" />

然后从您的 ViewModel 中公开一个属性它返回 Cells 中的最大行号收藏。

您可以找到这些属性的详细实现 on my blog .

关于wpf - 如何通过绑定(bind)将 RowDefinition 或 ColumnDefinition 动态添加到 Grid?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9000549/

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