2016-09-27 112 views
0

我試圖將ProgressBar和複選框添加到WPF中的ListView。但是我不能在DataTemplate中添加這兩個。我可以添加ProgressBar或CheckBox。將複選框和ProgressBar添加到WPF列表查看

如果我添加它,說不止一次visualTree設置。

下面是應用程序的XAML。

 <ListView x:Name="ApplicationList" ClipToBounds="True" Margin="0,100"> 
     <ListView.View> 
      <GridView x:Name="ApplicationListGrid"> 
       <GridViewColumn> 
        <GridViewColumn.CellTemplate> 
         <DataTemplate> 
          <CheckBox Tag="{Binding Check}" IsChecked="{Binding Check}"/> 
      <ProgressBar Maximum="100" Value="{Binding Progress}"/> 
         </DataTemplate> 
        </GridViewColumn.CellTemplate> 
       </GridViewColumn> 
       <GridViewColumn Header="Application Name" Width="250" DisplayMemberBinding="{Binding Name}" /> 
       <GridViewColumn Header="Application Description" Width="300" DisplayMemberBinding="{Binding Description}" /> 
      </GridView> 
     </ListView.View> 
    </ListView> 

回答

0

數據模板只能包含單個項目的,但是如果是單個項目本身可以包含多個項目,然後將其允許

因此你應該添加一個容器中的數據模板,然後添加這兩個您的控件到容器中的那

例子是

  • 電網
  • UniformGrid
  • 帆布
  • 的StackPanel
  • DockPanel中

我建議一個堆疊面板,但選擇權在你

<DataTemplate> 
    <StackPanel Orientation="Horizontal"> 
     <CheckBox Tag="{Binding Check}" IsChecked="{Binding Check}"/> 
     <ProgressBar Maximum="100" Value="{Binding Progress}"/> 
    </StackPanel> 
</DataTemplate> 
+0

如果我想在最後添加複選框或progressBar,該怎麼辦? – Prajwal

+0

在什麼時候結束? – MikeT

+0

列結束,最後一列應該是進度條。首先應該是複選框 – Prajwal

1

您可以添加網格,然後添加複選框和進度條。

 <ListView x:Name="ApplicationList" ClipToBounds="True" Margin="0,100"> 
      <ListView.View> 
       <GridView x:Name="ApplicationListGrid"> 
        <GridViewColumn Width="Auto"> 
         <GridViewColumn.CellTemplate> 
          <DataTemplate> 
           <Grid> 
            <Grid.ColumnDefinitions> 
             <ColumnDefinition></ColumnDefinition> 
             <ColumnDefinition></ColumnDefinition> 
            </Grid.ColumnDefinitions> 
            <CheckBox Grid.Column="0" Tag="{Binding Check}" IsChecked="{Binding Check}"/> 
            <ProgressBar Grid.Column="1" Maximum="100" Value="{Binding Progress}"/> 
           </Grid> 
          </DataTemplate> 
         </GridViewColumn.CellTemplate> 
        </GridViewColumn> 
        <GridViewColumn Header="Application Name" Width="250" DisplayMemberBinding="{Binding Name}" /> 
        <GridViewColumn Header="Application Description" Width="300" DisplayMemberBinding="{Binding Description}" /> 
       </GridView> 
      </ListView.View> 
     </ListView> 
+0

雖然你的答案將解決這個問題,你有沒有解釋爲什麼它發生或者網格不是OP可以使用的唯一選項 – MikeT

相關問題