WrapPanel с ItemControl - PullRequest
       3

WrapPanel с ItemControl

0 голосов
/ 11 марта 2020

Я создаю свой пользовательский интерфейс динамически, используя TemplateSelector с призмой. моя проблема в том, что я хочу, чтобы все элементы были такими: элемент 1 элемент 2 элемент 3 ......
элемент 10 элемент 11 элемент 12 .....

но я получаю это Результат: элемент 1 элемент 2 элемент 3. , .

Я использую WrapPanel, это мой код:

    <WrapPanel>
        <ItemsControl ItemsSource="{Binding Controls}"
                  ItemTemplateSelector="{StaticResource IbuttonTemplateSelector}">
        </ItemsControl>
    </WrapPanel>

Это полный код xaml

<Window x:Class="WpfApp2.Views.MainView"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:prism="http://prismlibrary.com/"
        prism:ViewModelLocator.AutoWireViewModel="True"
        xmlns:helpers="clr-namespace:WpfApp2.Helpers"
        xmlns:local="clr-namespace:WpfApp2.Views"
        mc:Ignorable="d"
        Title="MainView" Height="450" Width="800">
    <Window.Resources>

        <!--Button tamplate-->
        <DataTemplate x:Key="ButtonTemplate">
            <Button x:Name="OrderButton"
                        FontSize="10"
                        Height="20" Width="80"
                        Content="{Binding Value}"
                    Margin="0">
                </Button>
        </DataTemplate>

        <!--RadioButton tamplate-->
        <DataTemplate x:Key="RadioTemplate">
            <RadioButton GroupName="gal" Foreground="Black" Content="{Binding Value}" Margin="0">
            </RadioButton>
        </DataTemplate>

        <helpers:IbuttonTemplateSelector x:Key="IbuttonTemplateSelector" 
                                         ButtonTemplate="{StaticResource ButtonTemplate}"
                                         RadioTemplate="{StaticResource RadioTemplate}"/>

    </Window.Resources>

    <!--OUR LIST OF SETTINGS TO DISPLAY-->

    <WrapPanel>
        <ItemsControl ItemsSource="{Binding Controls}"
                  ItemTemplateSelector="{StaticResource IbuttonTemplateSelector}">
        </ItemsControl>
    </WrapPanel>
</Window>

1 Ответ

1 голос
/ 11 марта 2020

Вы должны переопределить панель ItemsControl, в которой находятся предметы. Это StackPanel по умолчанию:

<ItemsControl> 
  <ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>
      <WrapPanel />
    </ItemsPanelTemplate>
  </ItemsControl.ItemsPanel>
</ItemsControl>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...