如何通过x:来自我的Presenter的名称访问我的View元素?

时间:2009-08-07 08:12:41

标签: c# wpf xaml mvp code-behind

我的演示者定义了自己的视图

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 个答案:

答案 0 :(得分:1)

您可以在视图中定义将公开私有字段的公共属性。或者更好的是,不要这样做并在视图中定义一些抽象属性,比如“IsViewTabbed”或者像这样,它会从演示者中抽象出UI代码。

答案 1 :(得分:0)

找到它:

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