Как выровнять столбцы элемента управления ItemsControl (WPF) - PullRequest
2 голосов
/ 04 мая 2011

Я определил элемент управления ItemsControl в xaml следующим образом:

<ItemsControl BorderThickness="0"  Name="SummaryList">
</ItemsControl>

В том же файле xaml я определил следующий DateTemplate для каждого элемента в ItemsControl:

<DataTemplate DataType="{x:Type app:UpgradeItem}">
    <StackPanel Orientation="Horizontal">
        <Label Margin="5,5" Content="{Binding Path=ItemText,Mode=OneTime}" />
        <Label Margin="5,5" Content="{Binding Path=FromVersion,Mode=OneTime}" />
        <Label Margin="5,5" Content="{Binding Path=ToVersion,Mode=OneTime}" />
    </StackPanel>
</DataTemplate>

Я привязал ItemSontrol ItemsControl к общему списку UpgradeItems (т.е. List) и программно добавляю в этот список во время выполнения.Элементы в элементе управления ItemsControl заполняются правильно, за исключением того, что данные в столбцах не выровнены.Как я могу изменить это так, чтобы три отдельных столбца (ItemText, FromVersion и ToVersion) были выровнены?

TIA

Ответы [ 2 ]

3 голосов
/ 04 мая 2011

Вы должны иметь возможность использовать группы SharedSize в сетках, однако я считаю, что есть лучший способ сделать это.Вот ссылка на эту тему: http://blogs.microsoft.co.il/blogs/guy/archive/2009/06/30/wpf-grid-shared-size-groups.aspx

1 голос
/ 04 мая 2011

Часть этого хитрости заключается в том, что ItemsControl не не имеет «столбцов»: сам элемент управления не имеет представления о том, как содержимое его элементов расположено по отношению друг к другу.

Лучше всего было бы использовать один из подклассов ItemsControl, который поддерживает столбчатые данные, например ListView / GridView или полноценный DataGrid .

...