1

Пытаюсь создать ListBox в котором первым элементом будет отдельная кнопка со своей командой, а после неё уже идти все остальные элементы из ItemsSource с общим оформлением. Выглядеть это должно примерно как-то так. Извиняюсь за своё творчество

Получился вот такой ListBox

<ListBox
        Margin="0,87,0,0"
        ItemsSource="{Binding Divisions}"
        ScrollViewer.HorizontalScrollBarVisibility="Disabled"
        SelectedItem="{Binding SelectedDivision}">
        <TextBlock
            Width="200"
            Height="50"
            Margin="0"
            Padding="0"
            Text="Add" />
        <ListBox.ItemContainerStyle>
            <Style TargetType="ListBoxItem">
                <Setter Property="Margin" Value="5" />
                <Setter Property="BorderBrush" Value="Black" />
            </Style>
        </ListBox.ItemContainerStyle>
        <ListBox.ItemsPanel>
            <ItemsPanelTemplate>
                <WrapPanel Orientation="Horizontal" />
            </ItemsPanelTemplate>
        </ListBox.ItemsPanel>
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel Width="90" Orientation="Vertical">
                    <TextBlock
                        Width="200"
                        Height="50"
                        Margin="0"
                        Padding="0"
                        Text="{Binding Name}" />
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

Но при такой реализации он выдаёт:

Необработанное исключение типа "System.InvalidOperationException" в PresentationFramework.dll Дополнительные сведения: Перед использованием свойства ItemsSource семейство Items должно быть пустым.

А как реализовать по другому понятия не имею.

Reefiw
  • 11
  • Ваша проблема в том, что вы в ListBox внутрь добавляете TextBlock, что означает добавления нового Item'a в его коллекцию, а потом вы пытаетесь задать ItemsSource и тут у вас происходит конфликт, ибо ListBox не пустой, но и привязку сделать надо. Так что TextBlock тут явно лишний. как реализовать по другому - например так. То есть, сделайте UserControl-ы с нужным дизайном, создайте под них ViewModel, ну и связывайте все привязанной коллекцией. – EvgeniyZ Mar 28 '19 at 23:03
  • перенести этот первый обязательный <TextBlock ... Text="Add" /> в начало коллекции Divisions – Alias Mar 29 '19 at 06:28

0 Answers0