在DataTemplate中设置宽度

时间:2014-07-03 14:07:22

标签: c# wpf

我正在使用HiearchicalDataTemplate在树视图中显示项目。 我想要一个进度条出现在树视图的第三级。项目的名称应位于左侧,进度条应位于最右侧。这是我到目前为止所尝试过的。

<UserControl.Resources>
<HierarchicalDataTemplate x:Key="Level3"
                              ItemsSource="{Binding EquipmentCollection}"
                              ItemTemplate="{StaticResource Level4}">
        <DockPanel HorizontalAlignment="Stretch">
            <TextBlock Text="{Binding GroupName}" DockPanel.Dock="Left"/>
            <ProgressBar x:Name="GrpProgress" Width="400" Margin="0,5,0,0" DockPanel.Dock="Right" 
            </ProgressBar>
        </DockPanel>
    </HierarchicalDataTemplate>
    <HierarchicalDataTemplate x:Key="Level2"
                              ItemsSource="{Binding FamilyMembers}"
                              ItemTemplate="{StaticResource Level3}">
        <TextBlock Text="{Binding FamilyName}"/>
    </HierarchicalDataTemplate>

    <HierarchicalDataTemplate x:Key="Level1"
                              ItemsSource="{Binding SelectedFamilies}"
                              ItemTemplate="{StaticResource Level2}">
        <TextBlock Text="{Binding Name}"/>
    </HierarchicalDataTemplate>
</UserControl.Resources>

<TreeView Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3" x:Name="FamilyTreeView" Background="WhiteSmoke" 
          ItemsSource="{Binding SelectedItems}" ItemTemplate="{StaticResource Level1}" HorizontalContentAlignment="Stretch">
</TreeView>

但是,进度条会在组名结束后立即开始。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

Progressbar填写了DockPanel的其余部分。将第三个不可见的东西放入DockPanel,而不附加属性DockPanel.Dock。这会导致进度条位于右侧。