Добавьте ListBoxItem с помощью кнопки «Добавить», которая находится внутри самого ListBox - PullRequest
0 голосов
/ 27 ноября 2018

Итак, дело в том, что у меня есть ListBox с шаблоном ItemsTemplate в нем, а также кнопка, уже включенная в ItemsCollection, ведь это кнопка «Добавить элемент».Идея состоит в том, чтобы добавить новый элемент из элемента ItemsTemplate в этот список, нажав кнопку «Добавить элемент», и он находится в другом элементе ListBoxItem внутри того же списка, в который я хочу добавить новый элемент.Я знаю, что могу просто оставить кнопку «Добавить элемент» за пределами ListBox, но мне очень нравится идея, что кнопка находится в самом низу ListBox, потому что она более интуитивно понятна, поэтому мне нужно добавить новый элемент из шаблона, но не может просто привязать свойство ItemsSource, потому что оно должно быть пустым перед его использованием, и у него есть ListBoxItem с кнопкой добавления, который является единственным элементом без шаблона в нем, тогда я должен убедиться, что кнопкаперемещен в конец списка.

Некоторое время искал и ничего не нашел, не могу понять.

1 Ответ

0 голосов
/ 28 ноября 2018

Вы можете использовать CompositeCollection как ItemSource для своего ListBox, поэтому ваша кнопка «Добавить элемент» всегда является последним элементом в вашем ListBox и также не является частью вашей исходной коллекции.

    <ListBox>
        <ListBox.Resources>
            <!-- Your Datatemplates -->
        </ListBox.Resources>
        <ListBox.ItemsSource>
            <CompositeCollection>
                <!-- Bind your original ItemsSource here, in my case 'Collection' -->
                <CollectionContainer Collection="{Binding Source={StaticResource mainViewModel}, Path=Collection}"/>
                <!-- Focusable="False" not selectable -->
                <ListBoxItem Focusable="False">
                    <Button Command="{Binding Source={StaticResource mainViewModel}, Path=AddItemCommand}">Add Item</Button>
                </ListBoxItem>
            </CompositeCollection>
        </ListBox.ItemsSource>
    </ListBox>

См. Также Как связать CollectionContainer с коллекцией в модели представления? почему вам необходимо указать источник в привязках

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