Отображение пулов в зависимости от параметра od в дереве wpf - PullRequest
0 голосов
/ 17 июня 2010

У меня есть элемент управления wpf в виде дерева, и в зависимости от параметра в конструкторе я хочу отображать пул NumberOfHotels или не отображать.

<Grid>
    <StackPanel Name="stackPanel1">
        <GroupBox Header="Wybierz" 
                  Height="354" 
                  Name="groupBox1" 
                  Width="Auto">
            <TreeView Name="structureTree"
                      SelectedItemChanged="structureTree_SelectedItemChanged"
                      Grid.Row="0" Grid.Column="0" 
                      ItemsSource="{Binding}" 
                      Height="334" Width="Auto"
                      ScrollViewer.VerticalScrollBarVisibility="Visible" 
                      ScrollViewer.HorizontalScrollBarVisibility="Visible" 
                      PreviewMouseRightButtonUp="structureTree_PreviewMouseRightButtonUp" 
                      FontFamily="Verdana" FontSize="12" 
                      BorderThickness="1" MinHeight="0" 
                      Padding="1" Margin="-1"
                      Cursor="Hand">
                <TreeView.Resources>
                    <HierarchicalDataTemplate DataType="{x:Type MyService:Country}" 
                                              ItemsSource="{Binding Path=ListOfRegions}">
                        <StackPanel Orientation="Horizontal">
                            <TextBlock TextAlignment="Justify" 
                                       VerticalAlignment="Center" 
                                       Text="{Binding Path=Name}"/>
                            <TextBlock TextAlignment="Justify" 
                                       VerticalAlignment="Center" 
                                       Text=" "/>
                            <TextBlock TextAlignment="Justify" 
                                       VerticalAlignment="Center" 
                                       Text="H:"/>
                            <TextBlock TextAlignment="Justify" 
                                       VerticalAlignment="Center" 
                                       Text="{Binding Path=NumberOfHotels}"/>
                            <TextBlock TextAlignment="Justify" 
                                       VerticalAlignment="Center" 
                                       Text=" "/>
                            <TextBlock TextAlignment="Justify" 
                                       VerticalAlignment="Center" 
                                       Text=" S:"/>
                            <TextBlock TextAlignment="Justify" 
                                       VerticalAlignment="Center" 
                                       Text="{Binding Path=NumberOfZones}"/>
                        </StackPanel>
                    </HierarchicalDataTemplate>
                </TreeView.Resources>
            </TreeView>
        </GroupBox>
    </StackPanel>
</Grid>

Есть ли способ сделать это?

1 Ответ

1 голос
/ 17 июня 2010

Да. В вашем конструкторе установите свойство типа Visibility следующим образом:

public class MyUserControl : UserControl
{
  public TreeViewVisibility { get; private set; }

  public MyUserControl(bool showTreeView)
  {
    TreeViewVisibility = showTreeView ? Visibility.Visible : Visibility.Collapsed;
    ...
  }
}

И свяжите это в своем XAML:

...
<TreeView Visibility="{Binding TreeViewVisibility,
           RelativeSource={RelativeSource FindAncestor,local:MyUserControl,1}}" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...