由於最近有這方面的需求,而且剛接觸wpf不久,在網上找了很多方法,都不是使用mvvm模式的,因為datagrid的列不能繫結
這就難受了,我想了個折中的方法,這個是使用了mvvmlight的訊息機制,我就不說太多了,直接上**
ui介面
這裡需要在
這裡發乙個訊息,messagetoken如下:其實就是乙個字串類,防止重複
publicviewmodelclass
messagetoken
public記得在介面上繫結mainviewmodelclass
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()}}
執行效果
刪除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表示...