-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的内容能够水平滚动。
你可以发布你的代码吗? – Isma
尝试添加项目到网格(而不是两列) –
@lsma对不起,堆栈面板似乎不适合这个,我应该使用Listbox来代替。我写了一个排序代码片段来描述我的问题。 – mituba