Пользовательский контроль привязки данных с родителем - PullRequest
0 голосов
/ 07 декабря 2009

У меня есть UserControl, который содержит список.

В родительском окне у меня есть этот UserControl и кнопка.

В идеале я хотел бы использовать поведение ChangePropertyAction для кнопки родителей и привязать его к счетчику списка элементов UserControl.

Идея состоит в том, что если в списке элементов внутри пользовательского элемента управления нет записей, кнопка в родительском окне скрыта. Список связан с наблюдаемой коллекцией.

Должен ли я создать DependencyProperty для этого? Я не уверен, как привязать счетчик списка к этому свойству, хотя.

Большое спасибо за понимание правильного способа сделать это.

Ответы [ 2 ]

0 голосов
/ 13 января 2011

В итоге я использовал классы Messenger из проекта MVVM Futures, чтобы позволить UserMontrol ViewModel сигнализировать другим ViewModel об изменении.

Это позволяет нескольким слушателям отслеживать одни и те же изменения без необходимости в дополнительных свойствах зависимости.

0 голосов
/ 07 декабря 2009

Вы можете использовать ElementName Binding для достижения состояния ListBox из Button. Затем вы хотите использовать BooleanToVisibilityConverter, чтобы творить чудеса.

Вот так:

<Window x:Class="NestedTreeTest.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="200" Width="300">

    <Window.Resources>
        <BooleanToVisibilityConverter x:Key="boolToVisibilityConverter" />
    </Window.Resources>

    <StackPanel>
        <Button Visibility="{Binding ElementName=myList, Path=HasItems, Converter={StaticResource boolToVisibilityConverter}}">
                Text
        </Button>
        <ListBox x:Name="myList">
            <!--<ListBoxItem>Item A</ListBoxItem>-->
        </ListBox>
    </StackPanel>
</Window>

закомментируйте или раскомментируйте ListBoxItems, чтобы он работал ...

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