У меня есть проблема, по которой я хочу, чтобы ваши входыУ меня есть внешняя сетка, и у нее есть две колонки.В первом столбце я использую ItemsControl, который привязан к модели представления (эта модель представления предназначена для динамического создания кнопок).У меня есть определение шаблона панели обертки для шаблона элемента.2-й столбец предназначен для списка.
Я создаю объекты для кнопок в модели представления, и это привязывается к представлению. Requmnet - это то, что если высота окна соответствует, то все кнопки должны появляться водин столбец (один под другим), иначе он должен быть в двух столбцах.
Если один столбец
1234
Если два столбца:
1 23 4
У меня есть следующий код:
ItemsControl:
<Grid>...
<ItemsControl ItemsSource="{Binding buttonsViewModelColl}"
ItemsPanel="{StaticResource WrapPanelTemplateA}"
ItemTemplate="{StaticResource ButtonsDataTempleteA}" Width="{Binding ActualWidth, ElementName=<OuterGrid>}" Grid.Row="2" HorizontalAlignment="Center"/>
</Grid>
WrapPannelTemplete:
<ItemsPanelTemplate x:Key="WrapPanelTemplate">
<WrapPanel/>
</ItemsPanelTemplate>
DataTempleteForButton:
<DataTemplate x:Key="ButtonsDataTempleteA">
<Button
Content="{Binding Path=Text}"
IsEnabled="{Binding Path=IsEnabled}"
Style="{StaticResource StyleButtonA}"
FontFamily="Segoe UI Semibold"
HorizontalAlignment="Left" />
</DataTemplate>
Проблема в том, что при рендеринге видна только одна или две кнопки.Если я установлю вертикальную ориентацию WrapPannel, все получится, но они не будут автоматически переноситься.Только если я перетяну и увеличу ширину окна, все будет видно.Также последовательность не является правильной:
Они имеют вид:
ACBD
Любые идеи.
Другой вопрос: есть ли способ увеличить ширину столбца внутренней сетки на основе высоты внешней сетки во время выполнения в XAML?