我在 WPF 中有一个简单的库存管理器,它使用一个数据网格连接到一个表,前几天使用 SQL 工作,但更改了一行代码,现在它坏了。自从我把它弄坏后我就睡着了,不知道怎么修好它。问题似乎与下面 MainWindow 类中的 dataGrid1.Items.Add(testtables) 有关。我在 trycatch 中运行它时出现异常消息,指出在使用 ItemsSource 时该操作无效,应该使用 ItemsControl.ItemsSource 来访问和修改元素。这是主窗体的代码namespace WpfApp2{ /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { DataClasses1DataContext dc = new DataClasses1DataContext(Properties.Settings.Default.TestingConnectionString); public MainWindow() { InitializeComponent(); if (dc.DatabaseExists()) { dataGrid1.ItemsSource = dc.TestTables; } } private void newButton_Click(object sender, RoutedEventArgs e) { Window1 window1 = new Window1(); window1.Show(); } public void NewLine (int ID, string nm, decimal pc) { TestTable testtable = new TestTable { ID = ID, Name = nm, Price = pc }; dataGrid1.Items.Add(testtable); } private void saveButton_Click_1(object sender, RoutedEventArgs e) { dc.SubmitChanges(); } }}MainWindow 的 XAML 代码<Window x:Class="WpfApp2.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:WpfApp2" mc:Ignorable="d" Title="MainWindow" Height="450" Width="800"> <Grid>
1 回答
慕的地8271018
TA贡献1796条经验 获得超4个赞
在您的代码的这一部分:
public MainWindow()
{
InitializeComponent();
if (dc.DatabaseExists())
{
dataGrid1.ItemsSource = dc.TestTables;
}
}
您通过将数据表分配给 datagrid.ItemsSource 属性来显示数据。如果这样做,您需要通过修改 DataTable 而不是 DataGrid 来添加项目。
dataGrid1.Items.Add(testtable);
因此,尝试将 testtable 项目添加到现有集合 dc.TestTables 而不是上面的内容
- 1 回答
- 0 关注
- 84 浏览
添加回答
举报
0/150
提交
取消