gpt4 book ai didi

c# - 带有 ListView 的数据绑定(bind) WPF TabControl 导致滚动问题

转载 作者:行者123 更新时间:2023-11-30 18:43:46 24 4
gpt4 key购买 nike

我有一个 WPF 应用程序,它使用绑定(bind)到 MyTab 类集合的 TabControl。每个 TabItem 都有一个绑定(bind)到 MyTab 类的 Items 属性的 ListView。

我的问题是在任何 ListView 中向上或向下滚动会影响所有其他 View 的位置。

XAML:

<Window>
<Window.Resources>
<DataTemplate x:Key="TabHeaderTemplate">
<TextBlock Text="{Binding Header}" />
</DataTemplate>
<DataTemplate x:Key="TabItemTemplate">
<ListView ItemsSource="{Binding Items}">
<ListView.View>
<GridView>
<GridViewColumn Header="col1" DisplayMemberBinding="{Binding col1}" />
<GridViewColumn Header="col2" DisplayMemberBinding="{Binding col2}" />
</GridView>
</ListView.View>
</ListView>
</DataTemplate>
</Window.Resources>

<Grid>
<TabControl ItemsSource="{Binding Tabs}" ItemTemplate="{StaticResource TabHeaderTemplate}" ContentTemplate="{StaticResource TabItemTemplate}"/>
</Grid>
</Window>

代码:

public class MyTab
{
public string Header { get; set; }
public ObservableCollection<MyItem> Items { get; set; }
public MyTab(int count)
{
Header = count.ToString();
Items = new ObservableCollection<MyItem>();
for (var i = 0; i < count; i++)
Items.Add(new MyItem {col1 = i.ToString(), col2 = i.ToString()});
}
}

public class MyItem
{
public string col1 { get; set; }
public string col2 { get; set; }
}

public class MainViewModel
{
public ObservableCollection<MyTab> Tabs { get; set; }
public MainViewModel() { Tabs = new ObservableCollection<MyTab> {new MyTab(10), new MyTab(50)}; }
}

第 1 步:运行应用程序并选择第一个选项卡

第 2 步:选择第二个标签并一直向下滚动

第 3 步:选择第一个选项卡并观察 ListView 是否已向下滚动
第 4 步:再次选择第二个选项卡,观察 ListView 已经向上滚动

有人知道怎么解决吗?

最佳答案

这是一个与类似内容相关的线程,它有一个演示文件(不确定它是否有效)。希望这能帮助您朝着正确的方向前进。

http://www.eggheadcafe.com/community/aspnet/14/10043253/scrolling-in-a-listview.aspx

对象 myItem = myList.Items[20];myList.ScrollIntoView(myItem);

http://www.mvps.org/vbvision/_samples/Virtual_ListView_Demo.zip

关于c# - 带有 ListView 的数据绑定(bind) WPF TabControl 导致滚动问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3933109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com