2017-09-11 78 views
-1

我有兩個列表視圖並排顯示相同的數據在不同的角度。WPF同步項目位置和大小之間的兩個列表視圖

每次添加數據條目時,我在兩個ListView中的相同索引處添加一個條目。

我想要在每個ListView中具有相同的高度相同的項目。但是它們的MeasureOverride被單獨調用。我該如何解決這個問題?

=========================== 下面是示例代碼。

MainWindow.xaml

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition /> 
     <ColumnDefinition /> 
    </Grid.ColumnDefinitions> 
    <ListBox Grid.Column="0" x:Name="leftList"> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <TextBlock Text="{Binding Name}" /> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox> 
    <ScrollViewer> 
     <ListBox Grid.Column="1" x:Name="rightList"> 
      <ListBox.ItemTemplate> 
       <DataTemplate> 
        <TextBlock Text="{Binding Desc}" /> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 
     </ListBox> 
    </ScrollViewer> 
</Grid> 

MainWindow.xaml.cs

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
     AddPerson(new Person() { Name = "Ali", Desc = "123A" }); 
     AddPerson(new Person() { Name = "Akram", Desc = "456X" }); 
     AddPerson(new Person() { Name = "Salman", Desc = "Very long description ........................................" }); 
    } 

    void AddPerson(Person person) 
    { 
     leftList.Items.Add(person); 
     rightList.Items.Add(person); 
    } 
} 
class Person 
{ 
    public string Name { get; set; } 
    public string Desc { get; set; } 
} 

在現實中,一個ListViewItem比較複雜,我必須編寫自定義的控制他們。

在大多數情況下,右列表的ListViewItem比左列表需要更多的空間,但我需要保持它們具有相同的高度。

我不能使用Grid來做到這一點,因爲我需要正確的ListView的內容能夠水平滾動。

+0

你可以發佈你的代碼嗎? – Isma

+0

嘗試添加項目到網格(而不是兩列) –

+0

@lsma對不起,堆棧面板似乎不適合這個,我應該使用Listbox來代替。我寫了一個排序代碼片段來描述我的問題。 – mituba

回答

0

將相同的樣式(使用靜態高度)設置爲您添加到StackPanel的任何樣式。

相關問題