2017-01-22 53 views
1

我有一個列表視圖,其中包含一個堆棧面板。其中包含一個數據網格。從ListView摺疊ListItem

我想讓用戶點擊一個複選框。 和一些數據將崩潰。 (和數據的其餘部分將上浮)的任何列表視圖項目

將appericate一些幫助,代碼exmpale:

attching一些我的XAML代碼:

<Style x:Key="ShowHideStyle" TargetType="StackPanel" > 
    <Style.Setters> 
     <Setter Property="Visibility" Value="Collapsed" /> 
    </Style.Setters> 
    <Style.Triggers> 
     <MultiDataTrigger> 
      <MultiDataTrigger.Conditions> 
       <Condition Value="True"> 
        <Condition.Binding> 
         <MultiBinding Converter="{StaticResource V_converter }"> 
          <Binding Path="Type"></Binding> 
          <Binding Path="NodeID"></Binding> 
          <Binding Path="TLV"></Binding> 
         </MultiBinding> 
        </Condition.Binding> 
       </Condition> 
      </MultiDataTrigger.Conditions> 

      <MultiDataTrigger.Setters> 
       <Setter Property="Visibility" Value="Visible" /> 
      </MultiDataTrigger.Setters> 
     </MultiDataTrigger> 
    </Style.Triggers> 
</Style> 

<ListView x:Name="LV" ItemsSource= "{Binding Lggv}" SelectionChanged="dataGridData_SelectionChanged" ItemContainerStyle="{StaticResource ListViewItemStyle}"> 
    <ListView.ItemTemplate> 
     <DataTemplate x:Name="DT" > 
      <StackPanel x:Name="LVSP" DataContextChanged="LVSP_DataContextChanged" SourceUpdated="LVSP_SourceUpdated" Style="{StaticResource ShowHideStyle}"> 
       <Border BorderThickness="1" BorderBrush="Black" > 
        <Grid> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="150"></ColumnDefinition> 
          <ColumnDefinition Width="55"></ColumnDefinition> 
          <ColumnDefinition Width="1*"></ColumnDefinition> 
         </Grid.ColumnDefinitions> 
         <TextBlock x:Name="tbHeader" Text="{Binding Info }" AllowDrop="True" FontWeight="Bold" Grid.Column="2" Visibility="{Binding Visibility_Header}" > 

          <TextBlock.Style> 
           <Style TargetType="TextBlock"> 
            <Setter Property="Background"> 
             <Setter.Value> 
              <!-- this is the default background--> 
              <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
               <GradientStop Color="#FFCEE6C6" Offset="0.008"/> 
               <GradientStop Color="#FF9ECF8C" Offset="0.987"/> 
              </LinearGradientBrush> 
             </Setter.Value> 
            </Setter> 
           </Style> 
          </TextBlock.Style> 
         </TextBlock> 
        </Grid> 
       </Border> 
       <Grid x:Name="GridData"> 
        <Grid.Background> 
         <MultiBinding Converter="{StaticResource converter }"> 
          <Binding Path="Type"></Binding> 
          <Binding Path="NodeID"></Binding> 
          <Binding Path="TLV"></Binding> 
         </MultiBinding> 
        </Grid.Background> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="150"></ColumnDefinition> 
         <ColumnDefinition Width="55"></ColumnDefinition> 
         <ColumnDefinition Width="1*"></ColumnDefinition> 
        </Grid.ColumnDefinitions> 
        <Border Grid.Column="0" BorderThickness="1" BorderBrush="Black"> 
         <TextBlock Text="{Binding DateTime}" ></TextBlock> 
        </Border> 
        <Border Grid.Column="1" BorderThickness="1" BorderBrush="Black"> 
         <TextBlock Text="{Binding ComPort}"></TextBlock> 
        </Border> 
        <Border Grid.Column="2" BorderThickness="1" BorderBrush="Black"> 
         <TextBlock Text="{Binding Data}" ></TextBlock> 
        </Border> 
       </Grid> 
      </StackPanel> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 
+0

您是否希望標題始終可見? – mm8

+0

網格視圖的標題或列表視圖的標題 –

+0

我指的是StackPanel中的「標題」邊框。 – mm8

回答

1

應設置ItemContainerStyle爲目標類型ListViewItem,而不是針對您的項目內容(StackPanel)。

在資源部分,定義你的風格

<Style x:Key="ShowHideStyle" TargetType="ListViewItem"> 
    ... 
</Style> 

然後用它

<ListView ItemContainerStyle="{StaticResource ShowHideStyle}" .../> 

Ofcourse,我認爲你的轉換器/觸發器的事情實際上是工作,你就必須妥善隱瞞問題整個列表條目。

0

把StackPanel中的一個擴展器並將其應用於後者。

<ListView x:Name="LV" ItemsSource= "{Binding Lggv}" SelectionChanged="dataGridData_SelectionChanged" 
        ItemContainerStyle="{StaticResource ListViewItemStyle}"> 
    <ListView.ItemTemplate> 
     <DataTemplate x:Name="DT" > 
      <Expander Header="..." Style="{StaticResource ShowHideStyle}"> 
       <StackPanel x:Name="LVSP" DataContextChanged="LVSP_DataContextChanged" SourceUpdated="LVSP_SourceUpdated"> 
        <Border...></Border...> 
        <Grid...></Grid...> 
       </StackPanel> 
      </Expander> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

取而代之的是Visbility屬性設置爲摺疊/可見的您的擴展的IsExpanded屬性設置爲false /真:

<Style x:Key="ShowHideStyle" TargetType="Expander" > 
    <Style.Setters> 
     <Setter Property="IsExpanded" Value="False" /> 
    </Style.Setters> 
    <Style.Triggers> 
     <MultiDataTrigger> 
      <MultiDataTrigger.Conditions> 
       <Condition Value="True"> 
        <Condition.Binding> 
         <MultiBinding Converter="{StaticResource V_converter }"> 
          <Binding Path="Type"></Binding> 
          <Binding Path="NodeID"></Binding> 
          <Binding Path="TLV"></Binding> 
         </MultiBinding> 
        </Condition.Binding> 
       </Condition> 
      </MultiDataTrigger.Conditions> 
      <MultiDataTrigger.Setters> 
       <Setter Property="IsExpanded" Value="True" /> 
      </MultiDataTrigger.Setters> 
     </MultiDataTrigger> 
    </Style.Triggers> 
</Style> 
+0

不,這不是我想要 我希望可見將顯示和上升! –