2014-11-26 2 views
1

내 TabItem을 축소하거나 숨기려고합니다. 나는 많은 해결책을 시도하고 아무도 일한 적이 없다. 탭 항목은 아직 남아 있습니다바인딩 TabItem 가시성

약간의 지침을 얻을 수 있다면.

하나 개의 솔루션 나는

<TabItem > 
    <TabItem.Header> 
     <StackPanel Visibility="Collapsed"> 
      <TextBlock Text="Transactions" /> 
     </StackPanel> 
    </TabItem.Header> 
    <panes:Transactions /> 
</TabItem> 

private Visibility statementVisibility; 
public Visibility StatementVisibility { get { return statementVisibility; } set { statementVisibility = value; OnPropertyChanged("StatementVisibillity"); } } 

이 StatementVisibility 여전히 아무것도에 "축소"로 변경 시도했습니다.

업데이트 : 주위를 훑어 본 후, 나는 요소를 재생할 수 있다고 생각되는 TabItems에 대한 링크를 발견했습니다.

generic.xaml을

<ListBox Foreground="#FFF" Name="TabSelector" Grid.Row="2" ItemsSource="{Binding Path=Items, ElementName=Tabs}"> 
    <ListBox.Background> 
      <SolidColorBrush Color="#333"/> 
    </ListBox.Background> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
       <Border BorderThickness="0 0 0 1" SnapsToDevicePixels="False" BorderBrush="#22000000"> 
        <TextBlock FontSize="14" Height="30" VerticalAlignment="Center" Margin="0" Padding="6" Text="{Binding Header}"/> 
       </Border> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 


<Border Grid.Column="1" Grid.Row="2" Background="White" BorderThickness="0"> 
    <ContentPresenter Name="PART_TabbedFormPresenter" 
          Content="{Binding TabbedForm, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type shell:ActionScreenControl}}}" 
          DataContext="{Binding DataContext, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type shell:ActionScreenControl}}}"> 
     <ContentPresenter.Resources> 
      <Style TargetType="TabItem"> 
       <Setter Property="Visibility" Value="Collapsed"/> 
       <Setter Property="BorderThickness" Value="0"/> 
      </Style> 
     </ContentPresenter.Resources> 
    </ContentPresenter> 
</Border> 

Loanview.xaml.cs

<shell:ActionScreenControl.TabbedForm> 
    <TabControl> 
     <TabItem......./> 
     <TabItem......./> 
     <TabItem > 
      <TabItem.Header> 
       <StackPanel Visibility="Collapsed"> 
        <TextBlock Text="Transactions" /> 
       </StackPanel> 
      </TabItem.Header> 
      <panes:Transactions /> 
     </TabItem> 
    </TabControl> 
</shell:ActionScreenControl.TabbedForm> 
+0

만들기 데이터 컨텍스트의 문제가 의심을 간단한 TextBlock과 테스트 만있는 다른 탭. – Paparazzi

+0

안녕하세요 @ Blam 그것은 "System.Windows.Controls.TextBlock"을 보여줍니다 – Master

+0

그럼 나에게서 뭔가 잘못하고 있어요. 문제를 재현 할 수있는 간단한 예제를 게시하십시오. – Paparazzi

답변

0

실제 TabItem 자체에 Visibility 속성을 설정하십시오 :

<TabControl> 
    <TabItem Visibility="Collapsed"> 
     <TabItem.Header> 
      <StackPanel> 
       <TextBlock Text="Transactions" /> 
      </StackPanel> 
     </TabItem.Header> 
     <panes:Transactions /> 
    </TabItem> 
</TabControl> 

가 아아 ... 당신이 원하는 데이터 바인딩. 변환기를 사용하는 방법을 볼 수

<TabItem Visibility="{Binding YourBoolProperty, 
    Converter={StaticResource BooleanToVisibilityConverter}"> 
    <TabItem.Header> 
     <StackPanel> 
      <TextBlock Text="Transactions" /> 
     </StackPanel> 
    </TabItem.Header> 
    <panes:Transactions /> 
</TabItem> 

은 MSDN에 IValueConverter Interface 페이지를 참조하십시오 : 그럼 당신은 BooleanToVisibilityConverter 요소와 bool 속성을 사용해야합니다.

+0

시도했지만 여전히 나타나지만 대신 System.Windows.Controls.Stackpanel이라고 말합니다. – Master

+0

새 프로젝트에서 사용 해보십시오. 새 프로젝트에서는이 'TabItem'을 보지 않을 것입니다. 물론'TabControl'에 먼저 넣어야합니다. – Sheridan

+0

Visibility Converter에 부울을 시도했습니다. Collapsed를 설정하여 바인딩을 설정하기 전에 실제로 축소되는지 확인합니다. – Master

0

이 생산 코드에서이며

<TabItem Visibility="{Binding Path=MyGabeLib.CurUser.DisplayTSQL, Converter={StaticResource bvc}}"> 
     <TabItem.Header> 
     <TextBlock Style="{StaticResource HeaderTextBlockStyle}">TSQL</TextBlock> 
    </TabItem.Header> 
    <ScrollViewer VerticalScrollBarVisibility="Visible"> 
     <TextBox Text="{Binding Path=MyGabeLib.Search.CurrentTSQL, Mode=OneWay}" IsReadOnly="True" 
        TextWrapping="Wrap" FontFamily="Courier New"/> 
    </ScrollViewer> 
</TabItem> 

당신이 다음
간단한 TextBlock의와 시도 컨버터가 필요하지 않을 가시성을 반환하는 경우 작동 - 당신이

관련 문제