0

作为 WPF / XAML 的新手,我一直在努力解决布局并试图使其统一。我正在使用一个网格列表框,在不同的列中有不同的数据。我将首先说所需的行为:列的统一开始和结束位置,我认为可以通过在 s 中使用*-based Widths来实现ColumnDefinition

在底部 GitHub 链接的最新差异中,使用虚拟数据,列是统一的,具有各种字符串长度。但是由于某种原因,当我使用从DirectorySizers 中提取的实际数据时,均匀性超出了窗口,第二列根据 s 的长度从不同的位置开始DirPath。我唯一能想到的是数据是否比列长,这似乎不是这种情况(在内存中检查DirPath会得到适当的修剪)。

对此有任何解决方案/解释吗?我不知所措。

期望行为和不期望行为之间的差异

4

2 回答 2

2

您应该考虑在列表框中使用 Grid.IsSharedSizeScope。使用它,您可以根据 columnDefinition 中的属性“SharedSizeGroup”使所有网格共享相同的列大小。我知道这不是一个彻底的解释,所以请在 Grid.IsSharedSizeScope 上搜索一下,然后你会找到你需要的东西。

此外,您看到的行为差异可能是由您使用的数据源的不同结构来解释的。不要做一个字符串数组,其中完全相同的值被绑定到每一列,而是尝试设置一个具有两个不同字符串值的类并绑定到该类。这样,它将与您的 DirectorySizer 对象进行更有效的比较

于 2012-06-28T06:57:29.313 回答
0

显然有些东西INotifyPropertyChanged会导致布局不正常。当Notify()发生这种情况并显示新内容时,布局系统只是保持内容和网格线之间的填充,如果内容的大小不同,则会导致对齐变形。

于 2012-06-29T05:43:52.823 回答