2013-10-06 76 views
0

請幫助我解決WPF listview中滾動條可見性問題。 我有一個內容控件內的列表視圖。 此內容控件位於用戶控件中。 此用戶控件位於TabItem中。ScrollBar沒有顯示在嵌套用戶和內容控件中的WPF ListView中

listview有大約12列顯示,超過了窗口寬度。 我嘗試了很多方式來顯示列表視圖中的水平滾動條。

下面示出的是外用戶控件的XAML [寬度不設置此外usrCrtl]

 <Grid> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="Auto" /> 
       <RowDefinition Height="*" /> // Here I have a custom content control 
       <RowDefinition Height="Auto" /> 
      </Grid.RowDefinitions> 

      <MyCustomContentControl Grid.Row=1 VerticalAlignment="Stretch"......> 
       <TabControl> 
        <TabItem Header="One" Name="Tab1"> 
         <my:usrAControl /> // I have listview inside this userctrl      
        </TabItem> 
       </TabControl> 
       <TabControl Header="Two" Name="Tab2" /> 
      </MyCustomContentControl> 
     </Grid> 

現在下面是usrAControl XAML詳細

 <UserControl x:Class="MyProject.MyModule.usrAControl" 
      MinWidth="640"> 
      // Again inside another custom user control as its child. 
      <usrBControl> 
        <Grid> 
        <Grid.RowDefinitions> 
         <RowDefinition Height="30" /> // here another headers 
         <RowDefinition Height="*" /> // here my listview placed 
        </Grid.RowDefinitions> 

        <ListView ScrollViewer.HorizontalScrollBarVisibility="Auto" Grid.Row="1" 
           Width="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=Width}"> 

         // Around 12 columns which exceeds window width 

        </ListView> 
        </Grid> 
      </usrBControl>    
     </usrAControl> 

我試圖與很多組合的。 我最初把一個scrollviewer控件放在tabitem裏面,並把usrAControl放在裏面。 但它沒有奏效。

但我想列表視圖應該顯示它的兩個滾動條。有沒有辦法做到這一點。?

回答

0

沒有看到更多的代碼,我的猜測是MinSize="640"是你的問題:ListView從它的容器獲得足夠的空間,所以它不顯示滾動,但容器被剪切。

而你應該擺脫綁定,它是完全多餘的。

+0

嗨Eli Arbel,我通過刪除MinWidth和ListView寬度綁定再次嘗試,仍然沒有用。任何其他方式? – user2846545

+0

然後你必須添加更多的代碼。 'usrBControl'和'MyCustomContentControl'中有什麼?代碼是可行的。 –

+0

嗨Eli,我通過將scrollviewer作爲父列表視圖來修復它。所以現在這兩個滾動條都可見。感謝您的時間,建議和幫助 – user2846545