代码之家  ›  专栏  ›  技术社区  ›  Edward Tanguay

如何从演示者通过x:Name访问视图元素?

  •  0
  • Edward Tanguay  · 技术社区  · 16 年前

    我的演示者定义了自己的 看法 :

    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 回复  |  直到 16 年前
        1
  •  1
  •   maciejkow    16 年前

    您可以在视图中定义将公开私有字段的公共属性。或者更好的方法是,不要这样做,在视图中定义一些抽象属性,比如“IsViewTabbed”或者类似的东西,它们将从presenter中抽象出UI代码。

        2
  •  0
  •   Edward Tanguay    16 年前

    找到它:

    TabControl mainTabControl = View.FindName("MainTabControl") as TabControl;
    mainTabControl.Visibility = Visibility.Hidden;
    
    推荐文章