WPF筆記整理 DataBinding(1)

2022-02-10 20:50:49 字數 916 閱讀 3621

wpf的資料繫結是一大亮點。如果用wpf而不用資料繫結,那就太失敗了。

1. observablecollection可用於集合繫結,由於已經實現了inotifypropertychanged,可以通過新增刪除集合中的元素來實現對ui列表項更新。注意,當乙個observablecollection已經有元素,通過再次new集合並不能實現清空頁面已顯示的內容。

如果希望observablecollection中某列表項的屬性值改變顯示在介面上,要實現inotifypropertychanged。例如,有個應用是關於賣圖書的電子商務**,有個頁面是用來顯示圖書資訊的。圖書的物件book,有3個屬性:書名name,**price,數量count。用wpf資料繫結實現在圖書增減,**和數量變化時頁面隨時更新。書的集合定義 observablecollection,這樣在圖書增加,或移除會在ui體現。而book 對應的class要實現inotifypropertychanged,這樣在price和count變化時會在ui體現。

2. 用listbox的時候,itemssource繫結了物件,這事如果在xaml裡面又定義了listboxitem標籤,會導致程式一啟動就崩潰,貌似vs還捕獲不到異常。

3.這個是前幾天遇到的,還沒時間研究原因是什麼。只提一下現象和解決辦法。

有個usercontrol包含數量不定的,而且要保證這個列表隨時更新。於是定義了個timer來check是否有新的資料,如果有就更新列表。列表是儲存在observablecollection中。在xaml中給這個uc定義x:name,然後在listbox的itemssource ==」」。結果無論如何介面上都沒有顯示。後來debug時發現,後台的collection物件的值是expected,而listbox的itemssource一直是null。目前解決辦法是在loaded事件中,直接itemssource=collection就正常了。目前懷疑是多執行緒的原因。

WPF筆記整理 DataBinding(2)

有2個視窗a和b,a視窗的業務邏輯是編輯生成。然後從a視窗可以開啟b視窗。b視窗是由a生成所有的列表。當在a視窗編輯生成並儲存後開啟b視窗就會看到剛剛生成的。關閉b視窗,可以在a視窗中繼續編輯,再次儲存並開啟b視窗,就會看到最新的的變化。是儲存在本地路徑。public object convert ...

WPF使用SVG簡單整理

一 svg是什麼 它的英文全稱為scalable vector graphics,意思為可縮放的向量圖形。具體參考 二 svg製作 3 使用inkscape軟體 這個軟體在處理svg明顯強大的多,有詳細幫助文件和示例,具體參考官網。三 wpf裡使用svg 我常用的有三種方式 1 單個圖示的svg,2...

WPF學習筆記一 WPF概述

windows presentation foundation wpf 是下一代顯示系統,用於生成能帶給使用者震撼視覺體驗的 windows 客戶端應用程式。使用 wpf,您可以建立廣泛的獨立應用程式以及瀏覽器承載的應用程式。今年由於專案需求,開始學習使用wpf,本系列文章將記錄學習wpf中遇到的各...