WPF数据绑定疑惑解答--(关于控件的Itemsource,Collection绑定)

1. ListView绑定的数据类型问题

在 `MainWindow` 的构造函数中绑定 `List11.ItemsSource`

cs 复制代码
List<string> rpcList=new List<string>();
public MainWindow()
{
    InitializeComponent();

    // 确保 List11 的 ItemsSource 已经绑定到 rpcList
    List11.ItemsSource = rpcList;
}

如果 `rpcList` 是一个 `List<string>`,那么 `DisplayMemberBinding="{Binding}"` 会自动处理每个 `string` 元素的显示。

2. 确保 rpcList 数据被更新

检查在点击按钮时,`rpcList` 确实被更新了。比如在 `Button_Click` 中,可以确保数据被添加:

cs 复制代码
private void Button_Click(object sender, RoutedEventArgs e)
{
    // 添加新的时间
    rpcList.Add(DateTime.Now.ToString());

    // 调用 Items.Refresh() 来刷新显示(如果没有使用 ObservableCollection)
    List11.Items.Refresh();
}

3. 改用 ObservableCollection<string>(推荐)

`List<string>` 在数据发生变化时,不会自动通知 UI 更新。如果你将 `rpcList` 改为 `ObservableCollection<string>`,UI 会自动更新,不需要手动调 Items.Refresh()

cs 复制代码
public ObservableCollection<string> rpcList = new ObservableCollection<string>();

public MainWindow()
{
    InitializeComponent();

    List11.ItemsSource = rpcList;
}

private void Button_Click(object sender, RoutedEventArgs e)
{
    // 添加新的时间,UI 自动更新
    rpcList.Add(DateTime.Now.ToString());

    // 调用 Items.Refresh() 来刷新显示(如果没有使用 ObservableCollection)
    List11.Items.Refresh();
}

4.小结

List11.ItemsSource = rpcList;--需要手动调用 List11.Items.Refresh();刷新

`ObservableCollection<string>`,UI 会自动更新,不需要手动调 List11.Items.Refresh()

相关推荐
Magnum Lehar11 分钟前
wpf3d游戏引擎ControlTemplate.xaml.cs文件实现
游戏引擎·wpf
love530love2 小时前
是否需要预先安装 CUDA Toolkit?——按使用场景分级推荐及进阶说明
linux·运维·前端·人工智能·windows·后端·nlp
小锋学长生活大爆炸4 小时前
【教程】Windows安全中心扫描设置排除文件
windows·安全·系统·扫描·病毒·安全中心
C++ 老炮儿的技术栈7 小时前
visual studio 2022更改主题为深色
c语言·开发语言·c++·ide·windows·git·visual studio
Magnum Lehar7 小时前
wpf游戏引擎前端的Transform.cs实现
前端·游戏引擎·wpf
猕员桃11 小时前
《Elasticsearch 分布式搜索在聊天记录检索中的深度优化》
分布式·elasticsearch·wpf
Magnum Lehar11 小时前
wpf3d游戏引擎前端ControlTemplate实现
前端·游戏引擎·wpf
会飞的土拨鼠呀12 小时前
windows使用命令行查看进程信息
windows
JNU freshman14 小时前
windows 开发
windows·c#