新聞中心
WPF開發(fā)是近年來非常流行的一種桌面應用程序開發(fā)技術,它可以幫助開發(fā)人員快速、高效地創(chuàng)建充滿交互性和美觀的應用程序。在WPF開發(fā)中,窗口的嵌套是非常常見的操作,而子窗口與父窗口之間的信息傳遞則更是必不可少的。本文將介紹一個常見的WPF開發(fā)場景——如何在子窗口中操作數(shù)據(jù)庫,然后將數(shù)據(jù)傳遞給父窗口。

一、創(chuàng)建子窗體和父窗體
在WPF開發(fā)中,我們首先需要進行的操作就是創(chuàng)建一對子窗體和父窗體。首先創(chuàng)建一個子窗體,例如我們創(chuàng)建一個名為ChildWindow的子窗體。在Visual Studio中新建一個WPF Application項目,在項目中創(chuàng)建一個名為ChildWindow.xaml的文件,然后在文件中添加如下樣式:
“`
xmlns=”http://schemas.microsoft.com/winfx/2023/xaml/presentation”
xmlns:x=”http://schemas.microsoft.com/winfx/2023/xaml”
Title=”ChildWindow” Height=”300″ Width=”300″>
“`
在這里,我們創(chuàng)建了一個TextBox和一個Button,用戶可以在TextBox中輸入數(shù)據(jù),然后通過單擊Button將數(shù)據(jù)保存到數(shù)據(jù)庫中。
接下來,我們再創(chuàng)建一個父窗體,例如我們創(chuàng)建一個名為ParentWindow的父窗體。在Visual Studio中新建一個WPF Application項目,在項目中創(chuàng)建一個名為ParentWindow.xaml的文件,然后在文件中添加如下樣式:
“`
xmlns=”http://schemas.microsoft.com/winfx/2023/xaml/presentation”
xmlns:x=”http://schemas.microsoft.com/winfx/2023/xaml”
Title=”ParentWindow” Height=”300″ Width=”300″>
“`
在這里,我們創(chuàng)建了一個Button和一個ListView,用戶可以通過單擊Button打開一個ChildWindow子窗體,在ListView中顯示保存到數(shù)據(jù)庫中的數(shù)據(jù)。
二、創(chuàng)建數(shù)據(jù)庫
接下來,我們需要創(chuàng)建一個數(shù)據(jù)庫并將其與我們的項目關聯(lián)起來。在Visual Studio中右鍵單擊項目名稱,選擇“添加”->“新建項”,然后選擇“數(shù)據(jù)庫”并添加一個名為TestDB.mdf的數(shù)據(jù)庫。
三、將數(shù)據(jù)保存到數(shù)據(jù)庫中
在這個場景中,我們需要將用戶輸入的數(shù)據(jù)保存到TestDB數(shù)據(jù)庫中。我們需要在ChildWindow.xaml.cs文件中添加以下代碼:
“`
private void Button_Click(object sender, RoutedEventArgs e)
{
using (var conn = new SqlConnection(“Data Source=(LocalDb)\\v11.0;Initial Catalog=TestDB;Integrated Security=True”))
{
conn.Open();
using (var cmd = conn.CreateCommand())
{
cmd.CommandText = “insert into TestTable values(@name)”;
cmd.Parameters.AddWithValue(“@name”, txtName.Text);
cmd.ExecuteNonQuery();
}
}
}
“`
在這里,我們使用SqlConnection連接字符串與TestDB數(shù)據(jù)庫建立連接,并使用SqlCommand對象將輸入的數(shù)據(jù)存儲到TestTable表中。
四、將數(shù)據(jù)傳遞給父窗口
接下來,我們需要將剛剛保存到數(shù)據(jù)庫中的數(shù)據(jù)傳遞給父窗口。我們需要在ParentWindow.xaml.cs文件中添加以下代碼:
“`
private void Button_Click(object sender, RoutedEventArgs e)
{
var childWindow = new ChildWindow();
childWindow.ShowDialog();
using (var conn = new SqlConnection(“Data Source=(LocalDb)\\v11.0;Initial Catalog=TestDB;Integrated Security=True”))
{
conn.Open();
using (var cmd = conn.CreateCommand())
{
cmd.CommandText = “select * from TestTable”;
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
lvData.Items.Add(new { Name = reader[“name”].ToString() });
}
}
}
}
}
“`
在這里,我們首先使用子窗體的ShowDialog()方法打開ChildWindow窗體。在子窗體被關閉之后,我們使用SqlCommand對象查詢TestTable表的數(shù)據(jù),并將數(shù)據(jù)添加到ListView控件中。
五、
通過以上操作,我們成功實現(xiàn)了在WPF開發(fā)中通過子窗體傳遞數(shù)據(jù)庫給父窗體的操作。在實際開發(fā)中,這個場景是非常常見的,也是我們在開發(fā)WPF應用程序時需要掌握的基本技能之一。這需要我們熟練掌握WPF開發(fā)中窗口和控件的關系,并且了解如何在不同的窗體之間進行數(shù)據(jù)傳遞和交互。只有在熟練掌握這些基本技能之后,我們才能開發(fā)出高效、穩(wěn)定、充滿交互性和美觀的WPF應用程序。
成都網(wǎng)站建設公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設、網(wǎng)站制作、網(wǎng)頁設計及定制高端網(wǎng)站建設服務!
WPF中MVVM子窗口修改數(shù)據(jù)問題
這么說吧,wpf里的數(shù)據(jù)綁定就是給數(shù)據(jù)源(source)亮喚和顯示數(shù)據(jù)的綁定對象(target)洞鍵敗建立一個關系。綁定模式呢一般有單向綁定和雙向綁定的(默認為單向綁定,且當數(shù)據(jù)源實現(xiàn)INotifyPropertyChanged接口時,數(shù)據(jù)源改變可以導致前臺顯示改變)如果是雙向綁定呢,source和target只要有一方改變,另外一方也會隨之改變。樓主的例子中兩個窗口都是target,而父窗口列表里selectedItem和子窗口的文本框綁定的應該是viewModel里同一個對象。當子窗口target發(fā)生更改,它會通知到viewModel這個source,然后這個source呢,就會通知到主窗口這個target。啊,對了,一般情況下呢,觸發(fā)數(shù)據(jù)變化是“失去焦點”,就是你所謂的點擊確定按鈕讓子窗口文本框失去焦點的情況下。但如果在綁定的時候有設置UpdateSourceTrigger=PropertyChanged,那就會實現(xiàn)實時更改數(shù)據(jù)納顫了。
這就是綁定掘談的強大之處。或者說它睜數(shù)們本來用的就是同一個數(shù)據(jù)源。要想點確定再觸判早碰發(fā),則要改變子窗口的數(shù)據(jù)綁定對象。
C#如何將多個窗口中的STRING字符串傳遞到主窗口上的listbox去
看你子窗口是賣啟如何傳遞了、
如果是子窗口關閉時,參數(shù)傳遞到父窗體,可以使用構造函數(shù)。
在子窗口寫構造函數(shù):
public MyForm(string str)
{
//子窗口初始化 然后把str綁定給你子窗口的控渣橘件
}
Winform或者WPF調(diào)用子窗口一般都是
string str = “”;
var mf = new MyForm(str);
mf.ShowDialog(); //或者show();
當子窗口關閉的時候 會返回子窗口改變后的str。
如果是子窗口不關閉,就要往回傳遞值,可以使用全局變量
public static string str{set;get;}
如果希望自動刷新,更好使用委托進行回調(diào),會比較麻煩,可以看一下msdn的例子。
listbox中提供 Items.Add()方法,向里面添加參數(shù)。
C#代碼要在VS中才能編譯運行,你連實際的項目都沒有,也沒有給實現(xiàn)的技術。
要是需要能運行的程序建議你如配團直接上某寶去買。
listBox1.Items.Add(參數(shù));
關于wpf 子窗口向父窗口傳數(shù)據(jù)庫的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。
創(chuàng)新互聯(lián)-老牌IDC、云計算及IT信息化服務領域的服務供應商,業(yè)務涵蓋IDC(互聯(lián)網(wǎng)數(shù)據(jù)中心)服務、云計算服務、IT信息化、AI算力租賃平臺(智算云),軟件開發(fā),網(wǎng)站建設,咨詢熱線:028-86922220
分享題目:【W(wǎng)PF開發(fā)】子窗口傳遞數(shù)據(jù)庫給父窗口(wpf子窗口向父窗口傳數(shù)據(jù)庫)
當前URL:http://www.dlmjj.cn/article/dpdjiih.html


咨詢
建站咨詢
