国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

WPF入門教程系列二十八 ——DataGrid使用示例MVVM模式(5)

這篇具有很好參考價(jià)值的文章主要介紹了WPF入門教程系列二十八 ——DataGrid使用示例MVVM模式(5)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

WPF入門教程系列目錄
WPF入門教程系列二——Application介紹
WPF入門教程系列三——Application介紹(續(xù))
WPF入門教程系列四——Dispatcher介紹

WPF入門教程系列五——Window 介紹

WPF入門教程系列十一——依賴屬性(一)
WPF入門教程系列十五——WPF中的數(shù)據(jù)綁定(一)
?
?

添加ClickAction的實(shí)現(xiàn)

????? 通過(guò)上面兩步,我們將準(zhǔn)備工具全部做完了,現(xiàn)在需要在.xmal文件中給Button按鈕的Command屬性綁定了一個(gè)方法叫做ClickSaveAction,DataGrid控件的SelectItem綁定MainWindowVM(ViewModel)中的AreaVM屬性。

1. 在Visual Studio 2022中打開MainWindows.xmal文件。

2. 對(duì)DataGrid的SelectItem進(jìn)行了數(shù)據(jù)綁定。具體代碼如下:

 <DataGrid x:Name="gridArea" Grid.Row="1" d:ItemsSource="{d:SampleData ItemCount=5}" 
AutoGenerateColumns
="False"
HorizontalAlignment="Left" VerticalAlignment="Top" SelectedItem="{Binding Path=AreaVM,
Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}
">

3.將ClickSaveCommand綁定到Button按鈕的Command屬性上,這個(gè)ClickSaveCommand指令將代替保存按鈕的click事件,將數(shù)據(jù)保存到數(shù)據(jù)庫(kù)。具體代碼如下:

<Button  x:Name="btnSave" Height="22" Width="120" Command="{Binding ClickSaveAction}" >保存</Button>

注意:Command屬性僅僅作為Click行為的綁定,其他行為,如鼠標(biāo)移入、移出等事件,要使用另外的MVVM方式進(jìn)行綁定。

4.MainWindow.xmal的全部代碼如下:

<Window x:Class="WpfGridDemo.NET7.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfGridDemo.NET7"
        mc:Ignorable="d"
        Title="MainWindow" Height="600" Width="960">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="100"></RowDefinition>
            <RowDefinition Height="*"></RowDefinition>
            <RowDefinition Height="25"></RowDefinition>
        </Grid.RowDefinitions>

        <DataGrid x:Name="gridArea" Grid.Row="1" d:ItemsSource="{d:SampleData ItemCount=5}" 
AutoGenerateColumns
="False"
HorizontalAlignment
="Left" VerticalAlignment="Top" SelectedItem="{Binding Path=AreaVM, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"> <DataGrid.Columns> <DataGridComboBoxColumn Header="城市" Width="120" x:Name="cboCity"
ClipboardContentBinding
="{x:Null}" SelectedValuePath="Code"
SelectedValueBinding
="{Binding Path=CityCode,UpdateSourceTrigger=PropertyChanged}"
DisplayMemberPath
="Name" SelectedItemBinding="{x:Null}" /> <DataGridTextColumn Header="縣區(qū)鎮(zhèn)" Width="*" Binding="{Binding Name}"
ClipboardContentBinding
="{x:Null}"/> <DataGridTextColumn Header="郵編" Width="100" Binding="{Binding Code}"
ClipboardContentBinding="{x:Null}"/> <DataGridTextColumn Header="創(chuàng)建時(shí)間" Width="160" Binding="{Binding Created}"
ClipboardContentBinding="{x:Null}"/> <DataGridTextColumn Header="更新時(shí)間" Width="160" Binding="{Binding Updated}"
ClipboardContentBinding="{x:Null}"/> </DataGrid.Columns> </DataGrid> <WrapPanel Grid.Row="2"> <Button x:Name="btnRefresh" Height="22" Width="120" Click="btnRefresh_Click">刷新</Button> <Button x:Name="btnSave" Height="22" Width="120" Command="{Binding ClickSaveAction}" >保存</Button> </WrapPanel> </Grid> </Window>

5.在Visual Studio 2022中按F5鍵,啟動(dòng)WPF應(yīng)用程序,使用鼠標(biāo)左鍵點(diǎn)擊“刷新”按鈕,在數(shù)據(jù)呈現(xiàn)之后,使用鼠標(biāo)左鍵選中DataGrid中的一條記錄,進(jìn)行修改,然后點(diǎn)擊“保存”按鈕。如下圖。 WPF入門教程系列二十八 ——DataGrid使用示例MVVM模式(5)

6. 使用鼠標(biāo)左鍵點(diǎn)擊“刷新”按鈕,在數(shù)據(jù)呈現(xiàn)之后,我們發(fā)現(xiàn),剛才所做的修改,已經(jīng)保存到數(shù)據(jù)庫(kù)了。如下圖。? WPF入門教程系列二十八 ——DataGrid使用示例MVVM模式(5)

數(shù)據(jù)已經(jīng)保存到數(shù)據(jù)庫(kù),如下圖。

WPF入門教程系列二十八 ——DataGrid使用示例MVVM模式(5)

?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-478704.html

7.如果我們要讓保存按鈕禁用,可以將執(zhí)行的方法返回為False,具體代碼如下:

        /// <summary>

        /// 命令是否可以執(zhí)行
        /// </summary>
        /// <returns></returns>
        bool CanSaveExecute()
        {
return false; }

8. 在Visual Studio 2022中按F5鍵,啟動(dòng)WPF應(yīng)用程序,能夠看到,界面中按鈕已經(jīng)是禁用狀態(tài)了,我們綁定的這個(gè)命令是否可以執(zhí)行,是直接影響到按鈕能否被點(diǎn)擊的!這個(gè)值會(huì)直接作用在按鈕的IsEnabled上。如下圖。

?WPF入門教程系列二十八 ——DataGrid使用示例MVVM模式(5)

?

七、ComboBox下拉事件轉(zhuǎn)為Command命令

用于 DataGridComboBoxColumn 顯示有一組項(xiàng)可供選擇的數(shù)據(jù),例如枚舉。 DataGridComboBoxColumn 允許用戶從下拉列表中選擇項(xiàng)。本文通過(guò)將Command命令綁定到comboBox的SelectionChanged事件上,實(shí)現(xiàn)自動(dòng)刷新用戶選擇的省份的相應(yīng)城市信息。

在WPF中默認(rèn)的Command綁定往往不能滿足覆蓋所有的事件,例如ComboBox的SelectionChanged事件,DataGrid的SelectionChanged事件等等,這時(shí)就可以用到一個(gè)擴(kuò)展庫(kù),來(lái)實(shí)現(xiàn)事件綁定Command。

微軟從WPF 4.0開始,引入了一個(gè)比較實(shí)用的庫(kù)——Interactions,這個(gè)庫(kù)主要是通過(guò)附加屬性來(lái)對(duì)UI控件注入一些新的功能,除了內(nèi)置了一系列比較好用的功能外,還提供了比較良好的擴(kuò)展接口。

??? 本文這里簡(jiǎn)單的介紹一下Behavior這個(gè)擴(kuò)展,顧名思義,Behavior可以賦予控件新的行為能力。

??? 事件綁定到Command需要用到Interaction.Triggers這個(gè)屬性 ,在這個(gè)屬性里面添加一個(gè)或多個(gè)EventTrigger并指定關(guān)注的的事件名稱,在EventTrigger中通過(guò)InvokeCommandAction來(lái)綁定事件對(duì)應(yīng)的command。

1. 在Visual Studio 2022中打開MainWindows.xmal文件,并在文件的開頭添加如下命名空間。

          xmlns:be="http://schemas.microsoft.com/xaml/behaviors"

2. 在MainWindows.xmal文件中添加一個(gè)ComboBox控件,具體代碼如下:

<WrapPanel Grid.Row="0" HorizontalAlignment="Left">
            <ComboBox x:Name="cboProvince" DisplayMemberPath="Name" SelectedValuePath="Code" >
                <be:Interaction.Triggers>

                    <be:EventTrigger EventName="SelectionChanged">
                        <be:InvokeCommandAction Command="{Binding ProviceChangedAction}"/>

                    </be:EventTrigger>
                </be:Interaction.Triggers>
            </ComboBox>
        </WrapPanel>

3.???? 在寫完了以上代碼之后,Visual Studio 2022的界面設(shè)計(jì)器中原來(lái)呈現(xiàn)的UI界面,消失了,顯示“無(wú)效標(biāo)記,有關(guān)詳細(xì)信息,請(qǐng)查看錯(cuò)誤列表”。如下圖。

WPF入門教程系列二十八 ——DataGrid使用示例MVVM模式(5)

4.從錯(cuò)誤信息中來(lái)查看,應(yīng)用程序缺少程序集,沒(méi)有安裝相應(yīng)的程序包。使用鼠標(biāo)在菜單欄中選擇“工具--》NuGet軟件包管理器- -》 管理此解決方案的NuGet程序包”,如下圖。

WPF入門教程系列二十八 ——DataGrid使用示例MVVM模式(5)

5.??? 在Visual Studio 2022的NuGet-解決方案標(biāo)簽頁(yè)中,瀏覽頁(yè)面的搜索框中輸入“Microsoft.Xaml.Behaviors.Wpf”進(jìn)行搜索,然后使用鼠標(biāo)左鍵先選中要安裝的項(xiàng)目名稱,然后再點(diǎn)擊“安裝”按鈕。如下圖。 WPF入門教程系列二十八 ——DataGrid使用示例MVVM模式(5)

6.安裝成功之后,錯(cuò)誤列表中的錯(cuò)誤信息消失了,UI設(shè)計(jì)器中的UI又回來(lái)了。如下圖。

?WPF入門教程系列二十八 ——DataGrid使用示例MVVM模式(5)

?

到了這里,關(guān)于WPF入門教程系列二十八 ——DataGrid使用示例MVVM模式(5)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • WPF入門教程系列二十七 ——DataGrid使用示例MVVM模式(4)

    WPF入門教程系列目錄 WPF入門教程系列二——Application介紹 WPF入門教程系列三——Application介紹(續(xù)) WPF入門教程系列四——Dispatcher介紹 WPF入門教程系列五——Window 介紹 WPF入門教程系列十一——依賴屬性(一) WPF入門教程系列十五——WPF中的數(shù)據(jù)綁定(一) ? ? ? 計(jì)算機(jī)界的頂

    2024年02月07日
    瀏覽(24)
  • WPF入門教程系列二十九 ——DataGrid使用示例MVVM模式(7)

    WPF入門教程系列二十九 ——DataGrid使用示例MVVM模式(7)

    WPF入門教程系列目錄 WPF入門教程系列二——Application介紹 WPF入門教程系列三——Application介紹(續(xù)) WPF入門教程系列四——Dispatcher介紹 WPF入門教程系列五——Window 介紹 WPF入門教程系列十一——依賴屬性(一) WPF入門教程系列十五——WPF中的數(shù)據(jù)綁定(一) ? 接上文 WPF入門教程

    2024年02月10日
    瀏覽(29)
  • WPF入門教程系列三十 ——DataGrid驗(yàn)證

    WPF入門教程系列三十 ——DataGrid驗(yàn)證

    WPF入門教程系列目錄 WPF入門教程系列二——Application介紹 WPF入門教程系列三——Application介紹(續(xù)) WPF入門教程系列四——Dispatcher介紹 WPF入門教程系列五——Window 介紹 WPF入門教程系列十一——依賴屬性(一) WPF入門教程系列十五——WPF中的數(shù)據(jù)綁定(一) ? ???????? DataG

    2024年02月12日
    瀏覽(27)
  • WPF入門教程系列一——基礎(chǔ)

    WPF入門教程系列一——基礎(chǔ)

    一、?前言?? ?? ????? 最近在學(xué)習(xí)WPF,學(xué)習(xí)WPF首先上的是微軟的MSDN,然后再搜索了一下網(wǎng)絡(luò)有關(guān)WPF的學(xué)習(xí)資料。為了溫故而知新把學(xué)習(xí)過(guò)程記錄下來(lái),以備后查。這篇主要講WPF的開發(fā)基礎(chǔ),介紹了如何使用Visual?Studio?2013創(chuàng)建一個(gè)WPF應(yīng)用程序。 首先說(shuō)一下學(xué)習(xí)WPF的基礎(chǔ)知

    2024年02月07日
    瀏覽(32)
  • MaterialDesignInXAML WPF入門教程 快速入門

    MaterialDesignInXAML WPF入門教程 快速入門

    先去MaterialDesignInXAML下載下來(lái)源碼,以及Releases,在DemoApp 中就可以看到實(shí)際的效果很驚艷了。 除了要有一定的C#、winform 基礎(chǔ)外,建議先學(xué)習(xí)一下 XAML,對(duì)整個(gè)開發(fā)環(huán)境有個(gè)基礎(chǔ)的了解,再來(lái)學(xué)習(xí)此教程。 可以去bilibili上免費(fèi)學(xué)習(xí)一下。教程一共12個(gè)小時(shí),如果不看后面的實(shí)戰(zhàn)

    2024年02月05日
    瀏覽(28)
  • WPF真入門教程01--WPF簡(jiǎn)介

    ? ? ? ? Windows Presentation Foundation (簡(jiǎn)稱 WPF),WPF是微軟推出的基于Windows 的用戶界面框架,屬于.NET Framework 3.0的一部分。它提供了統(tǒng)一的編程模型、語(yǔ)言和框架,真正做到了分離界面設(shè)計(jì)人員與開發(fā)人員的工作;同時(shí)它提供了全新的多媒體交互用戶圖形界面。因與“我佩服”拼

    2024年02月06日
    瀏覽(24)
  • WPF真入門教程02--新建WPF工程

    WPF真入門教程02--新建WPF工程

    在VS開發(fā)環(huán)境安裝完成之后,首先我們先新建一個(gè)WPF工程,然后對(duì)工程目錄結(jié)構(gòu)啥的要有所了解才行。 打開VS2019 ? ? ?工程建好之后,WPF應(yīng)用程序”會(huì)在“引用”里面自動(dòng)添加下圖中所示的?PresentationCore、PresentationFramework、WindowsBase三大核心程序集,就是下面這個(gè)樣子 ? 默認(rèn)

    2024年02月03日
    瀏覽(26)
  • WPF 入門教程DockPanel介紹

    WPF 入門教程DockPanel介紹

    在 DockPanel中 可以很容易地??吭谒兴膫€(gè)方向的內(nèi)容(上,下,左,右)。這使它在許多情況下成為一個(gè)很好的選擇,您希望將窗口劃分為特定區(qū)域,特別是因?yàn)槟J(rèn)情況下,DockPanel 內(nèi)的最后一個(gè)元素,除非此功能被明確禁用,否則將自動(dòng)填充其余空間(中心)。 我們?cè)?/p>

    2024年02月05日
    瀏覽(37)
  • WPF教程_編程入門自學(xué)教程_菜鳥教程-免費(fèi)教程分享

    WPF教程 WPF - 概述 WPF - 環(huán)境設(shè)置 WPF - Hello World WPF - XAML概述 WPF - Elements Tree WPF - 依賴屬性 WPF - 路由事件 WPF - 控件 WPF - 布局 WPF - 布局嵌套 WPF - 輸入 WPF - 命令行 WPF - 數(shù)據(jù)綁定 WPF - 資源 WPF - 模板 WPF - 樣式 WPF - 觸發(fā)器 WPF - 調(diào)試 WPF - 自定義控件 WPF - 異常處理 WPF - 本地化 WPF - 互

    2023年04月27日
    瀏覽(27)
  • WPF 入門教程Grid使用技巧

    WPF 入門教程Grid使用技巧

    在上一章中,我們向您介紹了出色的 Grid 面板,并向您展示了一些有關(guān)如何使用它的基本示例。在本章中,我們將進(jìn)行一些更高級(jí)的布局,因?yàn)檫@是 Grid 真正閃耀的地方。首先,讓我們加入更多的列甚至一些行,以獲得真正的表格布局: 總共九個(gè)按鈕,每個(gè)按鈕都放置在自己

    2024年02月06日
    瀏覽(31)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包