2012-09-05 210 views
0

我對我所實現的分組和已定義的groupstyle內的膨脹機的列表視圖,如下所示:擴展器內部的ListViewItem

<ListView.GroupStyle> 
        <GroupStyle> 
         <GroupStyle.ContainerStyle> 
          <Style TargetType="{x:Type GroupItem}"> 
           <Setter Property="Margin" Value="0,0,0,5"/> 
           <Setter Property="Template"> 
            <Setter.Value> 
             <ControlTemplate TargetType="{x:Type GroupItem}"> 
              <Expander IsExpanded="True" > 
               <Expander.Header> 
                <DockPanel> 
                 <TextBlock FontWeight="Bold" Text="{Binding Path=Name}" Margin="5,0,0,0" Width="100"/> 
                 <TextBlock FontWeight="Bold" Text="{Binding Path=ItemCount}"/> 
                 <TextBlock FontWeight="Bold" Text=" Items"/> 
                </DockPanel> 
               </Expander.Header> 
               <Expander.Content> 
                <ItemsPresenter /> 
               </Expander.Content> 
              </Expander> 
             </ControlTemplate> 
            </Setter.Value> 
           </Setter> 
          </Style> 
         </GroupStyle.ContainerStyle> 
        </GroupStyle> 
       </ListView.GroupStyle> 

我想修改,使得僅一個被擴展的擴展器和所述其餘是否崩潰,如果不止一個在那裏,如果我想以編程方式展開任何一個擴展器即假設我從cs添加一個對象並且想要顯示展開器已打開,那應該是可能的,任何建議? 在此先感謝

編輯:到ListView和組綁定代碼:

CollectionViewSource viewSource = new CollectionViewSource { Source = TO_DOlst }; 
     viewSource.GroupDescriptions.Add(new PropertyGroupDescription("timeCategory")); 
     lstView.ItemsSource = viewSource.View; 

timecategory是類的成員

回答

0

您可以通過創建一個布爾屬性綁定IsExpanded財產您類就像Name一樣,直接在CS中定義所有的業務規則。

if(ItemsSource.Count() > 1) 
    //set IsExpanded = false; 
else 
    // set only first item and so on. 

問候。

+0

謝謝....我會嘗試.....以及如果我編程式地想要擴展其中之一,就像當我向它添加一個新項目時一樣,是可能的? – Dannyboy

+0

另外,我已經添加了我用來綁定在我的編輯中的代碼,如何將擴展器綁定到isexpanded,如果它是類的一部分,那麼不會有多個值,每個項目一個? – Dannyboy