Wpf DataGrid動態新增列,行資料(一)

2022-03-11 17:17:37 字數 1558 閱讀 1428

由於最近有這方面的需求,而且剛接觸wpf不久,在網上找了很多方法,都不是使用mvvm模式的,因為datagrid的列不能繫結

這就難受了,我想了個折中的方法,這個是使用了mvvmlight的訊息機制,我就不說太多了,直接上**

ui介面

這裡需要在

這裡發乙個訊息,messagetoken如下:其實就是乙個字串類,防止重複

public

class

messagetoken

viewmodel

public

class

mainviewmodel : viewmodelbase

ddatagrid.columns.add(

new datagridtextcolumn() );

ddatagrid.columns.add(

new datagridtextcolumn() );

ddatagrid.itemssource =_items;

});}

//////

繫結的資料

/// observablecollection_items = new observablecollection();

public

datagrid ddatagrid;

public observablecollectionitems

set }

public relaycommand addcolumncmd => new lazy(() =>

newrelaycommand(addcolumn)).value;

public relaycommand adddatacmd => new lazy(() =>

newrelaycommand(adddata)).value;

public relaycommand deletecolumncmd => new lazy(() =>

newrelaycommand(deletecolumn)).value;

private

void

adddata()

int newcolumnindex = 1

;

private

void

addcolumn()

ddatagrid.columns.add(

new datagridtextcolumn() );

newcolumnindex++;

}private

void

deletecolumn()}}

記得在介面上繫結mainviewmodel

執行效果

刪除b列

我在嘗試不用訊息的方式,直接繫結,成功再發。

wpf datagrid 實現漸變表頭

wpf 的datagrid控制項,如果直接對 columnheaderstyle 進行設定,會出現整列表頭乙個背景色 丟失了各列的邊框 以下通過對各列分別設定列頭模板,實現 datagrid 漸變表頭的一種方法。1.定義樣式模板 2.使用樣式模板 3.說明 使用的時候,如果直接使用這個datagri...

WPF DataGrid 行選中相關

datagrid選中行是有自帶selectionchanged的,可是當需要重複選中同一行時,該事件就不會觸發了。後來反覆查資料找到了datagrid上有個datagridrow。datagridrow上可以寫 mousedown mouseup這類事件可以實現重複選中行,當然,它也有selecte...

WPF DataGrid的分頁實現

原理 其實分頁功能的實現大家都清楚,無非就是把乙個記錄集通過運算來刷選裡面對應頁碼的記錄。接來下我們再次新增新的 datagrid textblock stackpanel grid 首先我們先寫個分頁的方法,供上面這些事件呼叫 後台 number表示每個頁面顯示的記錄數 currentsize表示...