我是 C# WPF 的新手,我正在創建一個應用程式來將專案詳細資訊添加到表單中。我的問題是我想將 wpf 視窗中的專案詳細資訊添加到主視窗中的資料網格中。我創建了一個類并添加了屬性來設定和獲取值。但我無法從課堂上回傳主視窗。我也想將這些專案添加到資料網格中。[
班級代碼:
public class AddItemToPRGrid
{
public string ItemNo { get; set; }
public string ItemName { get; set; }
public int Qty { get; set; }
public DateTime expDate { get; set; }
}
添加專案視窗代碼:
public partial class PnlAddItem : Window
{
public PnlAddItem()
{
InitializeComponent();
}
public static string no;
private void btnAddItem_Click(object sender, RoutedEventArgs e)
{
AddItemToPRGrid addItemToPRGrid = new AddItemToPRGrid();
addItemToPRGrid.ItemNo = txtItemNo.Text;
addItemToPRGrid.ItemName = txtItemName.Text;
addItemToPRGrid.Qty = Convert.ToInt32(txtItemQty.Text);
addItemToPRGrid.expDate = (DateTime)dpItemExpDate.SelectedDate;
this.Visibility = Visibility.Hidden;
}
}
主視窗代碼:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void btnCreatePR_Click(object sender, RoutedEventArgs e)
{
AddItemToPRGrid addItemToPRGrid = new AddItemToPRGrid();
//This MessageBox is used to identify whether the value is return from class
MessageBox.Show(addItemToPRGrid.ItemNo);
}
private void btnAddItem_Click(object sender, RoutedEventArgs e)
{
PnlAddItem AddItemWindow = new PnlAddItem();
AddItemWindow.ShowDialog();
}
}
XAML 代碼:
<Grid Height="250">
<DataGrid x:Name="dataGridAddItem"
CanUserAddRows="True"
ColumnWidth="*">
<DataGrid.Columns>
<DataGridTextColumn Header="Item No" Binding="{Binding ino}"/>
<DataGridTextColumn Header="Item Name" Binding="{Binding iname}"/>
<DataGridTextColumn Header="Quantity" Binding="{Binding qty}"/>
<DataGridTextColumn Header="Expiry Date" Binding="{Binding expirydate}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
uj5u.com熱心網友回復:
您可以通過屬性回傳結果:
public partial class PnlAddItem : Window
{
public PnlAddItem()
{
InitializeComponent();
}
public AddItemToPRGrid Item { get; private set; }
private void btnAddItem_Click(object sender, RoutedEventArgs e)
{
Item = new AddItemToPRGrid
{
ItemNo = txtItemNo.Text,
ItemName = txtItemName.Text,
Qty = Convert.ToInt32(txtItemQty.Text),
expDate = (DateTime)dpItemExpDate.SelectedDate
};
this.Close();
}
}
然后將其添加到 DataGrid:
private void btnAddItem_Click(object sender, RoutedEventArgs e)
{
var AddItemWindow = new PnlAddItem();
AddItemWindow.ShowDialog();
if (AddItemWindow.Item != null)
{
// add to datagrid, e.g. MainDataGrid.Items.Add(AddItemWindow.Item);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/489990.html
