WFP Listbox綁定數據后,數據變化的刷新

Listbox綁定數據通過ItemsSource來的,如果綁定的是普通的List<數據>,不會自己刷新。

使用ObservableCollection集合

解決問題的方法:

  1. 將數組替換為 ObservableCollection
    ObservableCollection 是專為綁定設計的集合類型,可以通知 WPF 綁定的集合數據發生變化。

如果本身是List,可以修改為:

using System.Collections.ObjectModel;public ObservableCollection<MyItem> MyItems { get; set; }public MainViewModel()
{MyItems = new ObservableCollection<MyItem>{new MyItem { showsafeui = true, SomeOtherProperty = "Item 1" },new MyItem { showsafeui = false, SomeOtherProperty = "Item 2" },new MyItem { showsafeui = true, SomeOtherProperty = "Item 3" }};
}// 動態添加或刪除數據
public void AddNewItem()
{MyItems.Add(new MyItem { showsafeui = true, SomeOtherProperty = "New Item" });
}public void RemoveItem()
{if (MyItems.Any())MyItems.RemoveAt(0);
}

使用 ObservableCollection 后,新增、刪除、或重新排序數據時,ListBox 會自動刷新。

數據內容變化的刷新INotifyPropertyChanged

上面的數據,如果某個屬性的內容發生了變化如何刷新。可以使用INotifyPropertyChanged。

public class HeartInfo : INotifyPropertyChanged
{public int id { get; set; }public bool showsafeui{ get; set; }public event PropertyChangedEventHandler PropertyChanged;protected void OnPropertyChanged([CallerMemberName] string propertyName = null){Console.WriteLine("刷新UI------------");PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));}
}

刷新單個數據

這樣在某個屬性變化的時候,可以

	public bool showsafeui{get => _showsafeui;set{if (_showsafeui != value){_showsafeui = value;OnPropertyChanged(); // 通知綁定屬性更改}}}

刷新多個數據

如果某個屬性變化需要刷新多個

	private bool _showsafe;public bool showsafe{get => _showsafe;set{if (_showsafe != value){_showsafe = value;OnPropertyChanged(); // 通知綁定的 showsafe 屬性OnPropertyChanged(nameof(showsafeui)); // 通知綁定的 showsafeui 屬性}}}

簡化刷新所有

我每次都想有一個屬性變化,刷新所有屬性
可以OnPropertyChanged(string.Empty)傳入空

	private int _updateall  = 0;public int updateall {get { return _updateuistat;}set {if (_updateall!= value) { _updateall= 0; OnPropertyChanged(string.Empty); }}  //刷新ui
}

這樣我每次屬性變化都調用updateall = 1,就全部刷新了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/64753.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/64753.shtml
英文地址,請注明出處:http://en.pswp.cn/web/64753.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JVM 及內存管理:掌握 Java 8 的內存模型與垃圾回收機制

Java 虛擬機&#xff08;JVM&#xff09;是運行 Java 程序的核心&#xff0c;它負責代碼執行和內存管理。Java 8 引入了一些重要的內存模型和垃圾回收機制優化。本文將詳細解析 JVM 的內存模型、垃圾回收機制&#xff0c;并配以相關圖解&#xff0c;幫助你深刻理解 JVM 的工作原…

Maple軟件的安裝和使用

文章目錄 1.前言說明2.我為什么要學習Maple3.軟件的安裝4.如何使用4.1基本的賦值語句4.2函數的定義4.3三個類型的書寫介質 5.指數運算5.1使用面板5.2自己輸入 6.對數的使用 1.前言說明 眾所周知&#xff0c;我雖然是一名這個計算機專業的學生&#xff0c;但是我對于數學&#…

【超級詳細】Vue3項目上傳文件到七牛云的詳細筆記

概述 繼上一篇筆記介紹如何綁定七牛云的域名之后&#xff0c;這篇筆記主要介紹了如何在Vue3項目中實現文件上傳至七牛云的功能。我們將使用Cropper.js來處理圖像裁剪&#xff0c;并通過自定義組件和API調用來完成整個流程。 這里直接給出關鍵部分js代碼&#xff0c;上傳之前要先…

Sqoop的使用

每個人的生活都是一個世界&#xff0c;即使最平凡的人也要為他那個世界的存在而戰斗。 ——《平凡的世界》 目錄 一、sqoop簡介 1.1 導入流程 1.2 導出流程 二、使用sqoop 2.1 sqoop的常用參數 2.2 連接參數列表 2.3 操作hive表參數 2.4 其它參數 三、sqoop應用 - 導入…

FFmpeg 4.3 音視頻-多路H265監控錄放C++開發二十一.4,SDP協議分析

SDP在4566 中有詳細描述。 SDP 全稱是 Session Description Protocol&#xff0c; 翻譯過來就是描述會話的協議。 主要用于兩個會話實體之間的媒體協商。 什么叫會話呢&#xff0c;比如一次網絡電話、一次電話會議、一次視頻聊天&#xff0c;這些都可以稱之為一次會話。 那為什…

智簡未來創新與簡化的AI之路

附上鏈接地址&#xff1a;https://aint.top 在這個數字化迅速發展的時代&#xff0c;人工智能&#xff08;AI&#xff09;不僅僅是技術的前沿&#xff0c;它正在成為每個行業創新的核心推動力。作為一家專注于AI技術應用與創新的公司&#xff0c;智簡未來旨在通過智能化的工具…

[極客大挑戰 2019]HardSQL 1

看了大佬的wp&#xff0c;沒用字典爆破&#xff0c;手動試出來的&#xff0c;屏蔽了常用的關鍵字&#xff0c;例如&#xff1a;order select union and 最搞的是&#xff0c;空格也有&#xff0c;這個空格后面讓我看了好久&#xff0c;該在哪里加括號。 先傳入1’ 1試試&#…

【Pytorch實用教程】深入了解 torchvision.models.resnet18 新舊版本的區別

深入了解 torchvision.models.resnet18 新舊版本的區別 在深度學習模型開發中,PyTorch 和 torchvision 一直是我們不可或缺的工具。近期,torchvision 對其模型加載 API 進行了更新,將舊版的 pretrained 參數替換為新的 weights 參數。本文將介紹這一變化的背景、具體區別,…

Elasticsearch名詞解釋

文章目錄 1.什么是Elasticsearch?2.什么是elastic stack(ELK)?3.什么是Lucene?4.什么是文檔(document)&#xff1f;5.什么是詞條(term)&#xff1f;6.什么是正向索引&#xff1f;7.什么是倒排索引&#xff1f;8.ES中的索引(index)9.映射(Mapping)10.DSL11.elastcisearch與my…

網絡滲透測試實驗三:SQL注入

1.實驗目的和要求 實驗目的:了解SQL注入的基本原理;掌握PHP腳本訪問MySQL數據庫的基本方法;掌握程序設計中避免出現SQL注入漏洞的基本方法;掌握網站配置。 系統環境:Kali Linux 2、Windows Server 網絡環境:交換網絡結構 實驗工具: SqlMAP;DVWA 2.實驗步驟 實驗目…

SQL-Server鏈接服務器訪問Oracle數據

SQL Server 鏈接服務器訪問 Oracle 離線安裝 .NET Framework 3.5 方法一&#xff1a;使用 NetFx3.cab 文件 下載 NetFx3.cab 文件&#xff0c;并將其放置在 Windows 10 系統盤的 C:Windows 文件夾中。 以管理員身份運行命令提示符&#xff0c;輸入以下命令并回車&#xff1a; …

【R語言】校準曲線,繪制原理

①獲取predict的結果&#xff0c;“prob.Case”這一列就是預測風險概率&#xff0c;“truth”列為實際發生結局的分組 ②將prob.Case進行分桶&#xff08;簡單理解為分組&#xff0c;一般分10組)&#xff0c;常見的分桶方式有兩種&#xff1a;一是將prob.Case從大到小排序后&a…

QTDemo:串口調試工具

項目簡介 本項目通過QT框架設計一款可以在Windows、Linux等平臺的跨平臺串口助手&#xff0c;串口功能能夠滿足基本的調試需求。 本項目采用的版本為&#xff1a;QT5.14 visual studio 2022 進行開發。 項目源碼&#xff1a;https://github.com/say-Hai/MyCOMDemo 項目頁面&am…

基于SpringBoot和OAuth2,實現通過Github授權登錄應用

基于SpringBoot和OAuth2&#xff0c;實現通過Github授權登錄應用 文章目錄 基于SpringBoot和OAuth2&#xff0c;實現通過Github授權登錄應用0. 引言1. 創建Github應用2. 創建SpringBoot測試項目2.1 初始化項目2.2 設置配置文件信息2.3 創建Controller層2.4 創建Html頁面 3. 啟動…

CMS漏洞靶場攻略

DeDeCMS 環境搭建 傻瓜式安裝 漏洞一&#xff1a;通過文件管理器上傳WebShel 步驟?:訪問目標靶場其思路為 dedecms 后臺可以直接上傳任意文件&#xff0c;可以通過?件管理器上傳php文件獲取webshell 登陸網站后臺 步驟二&#xff1a;登陸到后臺點擊 【核心】 --》 【文件式…

0xc0000020錯誤代碼怎么處理,Windows11、10壞圖像錯誤0xc0000020的修復辦法

“0xc0000020”是一種 Windows 應用程序錯誤代碼&#xff0c;通常表明某些文件缺失或損壞。這可能是由于系統文件損壞、應用程序安裝或卸載問題、惡意軟件感染、有問題的 Windows 更新等原因導致的。 比如&#xff0c;當運行軟件時&#xff0c;可能會出現類似“C:\xx\xxx.dll …

LabVIEW 中 NI Vision 模塊的IMAQ Create VI

IMAQ Create VI 是 LabVIEW 中 NI Vision 模塊&#xff08;NI Vision Development Module&#xff09;的一個常用 VI&#xff0c;用于創建一個圖像變量。該圖像變量可以存儲和操作圖像數據&#xff0c;是圖像處理任務的基礎。 ? 通過以上操作&#xff0c;IMAQ Create VI 是構建…

HTML5 標簽輸入框(Tag Input)詳解

HTML5 標簽輸入框&#xff08;Tag Input&#xff09;詳解 標簽輸入框&#xff08;Tag Input&#xff09;是一種用戶界面元素&#xff0c;允許用戶輸入多個標簽或關鍵詞&#xff0c;通常用于表單、搜索框或內容分類等場景。以下是實現標簽輸入框的詳細講解。 1. 任務概述 標…

使用位操作符實現加減乘除!

歡迎拜訪&#xff1a;霧里看山-CSDN博客 本篇主題&#xff1a;使用位操作符實現加減乘除 發布時間&#xff1a;2025.1.1 隸屬專欄&#xff1a;C語言 目錄 位操作實現加法運算&#xff08;&#xff09;原理代碼示例 位操作實現減法運算&#xff08;-&#xff09;原理代碼示例 位…

[Spring] Spring AOP

&#x1f338;個人主頁:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;?熱門專欄: &#x1f9ca; Java基本語法(97平均質量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection與…