WPF學習分享 一 DataGrid

2021-08-28 04:54:29 字數 3146 閱讀 7289

最近由於想做乙個windows的桌面應用程式,正好最近看了一下c#,在網上找了一下關於windwos桌面應用的相關檔案,最後選擇使用wpf來開發。

使用datagrid用到的功能

datagrid通過使用資料繫結,實現資料的雙向通知。

在datagrid的datagridcomboboxcolumn使用列舉。

datagrid的自定義cell的使用。

datagrid多出的一行的去除。

首先定義乙個model,省略了部分**

public

enum ***s

;public

enum roles

;public delegate void

change

(user user)

;//實現介面以進行資料繫結

public

class

user

: inotifypropertychanged

set}}

//省略。。。。。

#endregion

public event propertychangedeventhandler propertychanged;

protected virtual void

onpropertychanged

([callermembername] string propertyname = null)

}

然後就是view層的實現了。

先是資料繫結,通過使用標籤的binding屬性,將上面的model的字段對應到單元格上。

然後是列舉的使用。首先要引入列舉型別,使用xmlns:assembly="clr-namespace:system;assembly=mscorlib"引入,用到的列舉只要在xmlns:local="clr-namespace:adressbook"這個命名空間下就可以了。

日期的格式化輸出(與字元格式化輸出同理),通過在binding裡面使用stringformat='{}',converterculture=zh-cn即可。

如果要自定義griddata的單元格的內容,像是新增按鈕什麼的,可以使用標籤datagridtemplatecolumndatagrid的在顯示的時候會自動生成最後一行,倒是展示的時候多了一行,可以通過設定datagridcanuseraddrows的值為false,由於我直接在xaml設定的時候會警告,所以我就在controller裡面設定了。。。

x:class

="adressbook.userlist"

xmlns

=""xmlns:x

=""xmlns:mc

=""xmlns:d

=""xmlns:local

="clr-namespace:adressbook"

xmlns:assembly

="clr-namespace:system;assembly=mscorlib"

mc:ignorable

="d"

d:designheight

="300"

d:designwidth

="800"

>

>

x:key

="***enum"

methodname

="getvalues"

objecttype=""

>

>

<

x:type

typename

="local:***s"

/>

objectdataprovider.methodparameters

>

objectdataprovider

>

usercontrol.resources

>

x:name

="data"

autogeneratecolumns

="false"

>

>

width

="80"

header

="id"

binding=""

/>

width

="80"

header

="性別"

itemssource

="}"

selecteditembinding=""

/>

width

="80"

header

="生日"

binding

="',converterculture=zh-cn}"

/>

header="

" width

="44"

>

>

>

content

= click

="commentaction"

/>

datatemplate

>

datagridtemplatecolumn.celltemplate

>

datagridtemplatecolumn

>

datagrid.columns

>

datagrid

>

usercontrol

>

最後就是controller的實現了。

public partial class

userlist

: usercontrol

//設定資料來源

data.datacontext = list;

//讓datagrid的最後一行消失

data.canuseraddrows =

false;}

private

void

viewcomment

(object sender, routedeventargs e)

//資料改變的時候的操作

void

change

(user user)

}

WPF學習筆記一 WPF概述

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

WPF學習之路(一) 初識WPF

參考 葵花寶典 wpf自學手冊 vs2012 先建立第乙個wpf小程式 1.建立wpf程式 2.檢視solution,wpf中xaml檔案和cs檔案經常成對出現 3.新增button和click事件 mainwindow.xaml mainwindow.xaml.cs private void bu...

WPF學習筆記 一

第一點 wpf windows presentation foundation 是微軟推出的基於windows vista的使用者介面框架,屬於.net framework 3.0的一部分。它提供了統一的程式設計模型 語言和框架,真正做到了分離介面設計人員與開發人員的工作 同時它提供了全新的多 互動...