WPF Databinding: не перезаписывать предварительно заполненные значения - PullRequest
2 голосов
/ 18 июля 2011

У меня есть MenuItem, который я хотел бы заполнить подпунктами.Тем не менее, я бы хотел, чтобы он сохранил элементы, которые у него уже есть:

<MenuItem Header="_Profiles">
    <MenuItem Header="_New Profile..." />
    <Separator />
    <!-- Databind here! -->
</MenuItem>

Однако, когда я пытаюсь использовать обычное декларативное связывание данных, это устраняет два подпункта, которые я объявил.* Я уверен, что должен быть способ сделать это, но я не могу понять это, и я не уверен, что какой-либо из моих поисков в Google был настолько хорош;Кто-нибудь может помочь?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 18 июля 2011

Один из подходов заключается в использовании CompositeCollection:

<MenuItem Header="_File">
    <MenuItem.ItemsSource>
        <CompositeCollection>
            <MenuItem Header="_New" />
            <Separator />
            <CollectionContainer Collection="{Binding MenuItems}" />
            <Separator />
            <MenuItem Header="E_xit" />
        </CompositeCollection>
    </MenuItem.ItemsSource>
</MenuItem>
1 голос
/ 18 июля 2011

Он будет связывать все элементы в вашей коллекции с помощью MenuItem, поэтому единственный способ сохранить элементы там после загрузки / изменения вашей коллекции - убедиться, что эти статические пункты меню остаются в коллекции.

Один из способов сделать это - сохранить две ItemCollections, одно из ваших статических значений и одно из ваших динамических значений.Привязать к динамическим значениям.Затем, перед отображением меню, объедините коллекции.Таким образом, вам не нужно постоянно обеспечивать размещение статических значений в качестве первых двух элементов вашей связанной коллекции.

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