Как я могу получить доступ к моим элементам View через x: Name из моего Presenter? - PullRequest
0 голосов
/ 07 августа 2009

Мой докладчик определяет свой собственный просмотр :

public SmartFormPresenter(SmartFormView view)
{
    View = view;
    View.DataContext = this;
}

В представлении у меня есть элемент с x: Name = "MainTabControl":

<DockPanel LastChildFill="True">
    <TabControl x:Name="MainTabControl" DockPanel.Dock="Top" ItemsSource="{Binding SmartFormAreaPresenters}">
        <TabControl.ItemContainerStyle>
            <Style TargetType="{x:Type TabItem}">
                <Setter Property="Header" Value="{Binding Title}"/>
            </Style>...

Как я могу получить доступ к этому элементу, как я делаю в коде, что-то вроде этого:

PSEUDO-CODE:

View.Root.Children.MainTabControl.Visibility = Visibility.Collapsed;

Ответы [ 2 ]

1 голос
/ 07 августа 2009

Вы можете определить публичное свойство в вашем представлении, которое будет выставлять приватное поле. Или, лучше, не делайте этого и не определяйте какое-либо абстрактное свойство в вашем представлении, например «IsViewTabbed» или что-то подобное, которое будет абстрагировать код пользовательского интерфейса от презентатора.

0 голосов
/ 07 августа 2009

Нашли:

TabControl mainTabControl = View.FindName("MainTabControl") as TabControl;
mainTabControl.Visibility = Visibility.Hidden;
...