重新加载页面时数据网格错误
Data Grid Error when Reloading page
我有一个添加客户 UI,它应用了一个数据网格来显示所提供的条目,但是如果我在已经显示的情况下重新 select 添加客户,将再次添加条目。
第 1-3 行是原始的,第 4-6 行是重复的。有谁知道如何限制这种情况的发生??
在我的 MainActivity 中,我有一个带有框架的菜单导航来填充 xaml 页面。下面是初始化 class.
的代码
private void AddCustomer_Click(object sender, RoutedEventArgs e)
{
Main.Content = new AddCustomerUI();
}
Frame 被称为 Main,然后将 xaml 页面分配给它的 Main.content
public partial class AddCustomerUI : Page
{
public AddCustomerUI()
{
InitializeComponent();
SetupCustomer();
customerDataGrid.ItemsSource = App.customers;
}
private void SetupCustomer()
{
var customer = new Customer { FirstName = "Timothy", LastName = "Jennings", Email = "tim.jennings@gmail.com", Phone = "0275 202020",
Address = new Address { Street = "100 Burt Road", Suburb = "Howick", City = "Auckland", Country = "New Zealand" }
};
App.customers.Add(customer);
customer = new Customer { FirstName = "Brian", LastName = "Jones", Email = "bjones@gmail.com", Phone = "0275 903070",
Address = new Address { Street = "100 Vincent Road", Suburb = "St Lukes", City = "Auckland", Country = "New Zealand" }
};
App.customers.Add(customer);
App.customers.Add(new Customer { FirstName = "Terry", LastName = "Teo", Email = "tete@mana.com", Phone = "021 756 382",
Address = new Address { Street = "23 Ford St", City = "Auckland", Suburb = "Pakuranga", Country = "New Zealand" }
});
}
private void SaveCustomer_Click(object sender, RoutedEventArgs e)
{
if (string.IsNullOrWhiteSpace(fNameTxt.Text) || string.IsNullOrWhiteSpace(lNameTxt.Text) || string.IsNullOrWhiteSpace(emailTxt.Text)
|| string.IsNullOrWhiteSpace(phTxt.Text))
//MessageBox.Show("Empty Fields", "Please look at filling out all fields on the form.");
return;
var customer = new Customer
{
FirstName = fNameTxt.Text, LastName = lNameTxt.Text, Email = emailTxt.Text, Phone = phTxt.Text,
Address = new Address { Street = streetTxt.Text, Suburb = suburbTxt.Text, City = cityTxt.Text, Country = countryTxt.Text }
};
App.customers.Add(customer);
customerDataGrid.Items.Refresh();
ResetText();
}
private void ResetText()
{
fNameTxt.Text = string.Empty; lNameTxt.Text = string.Empty;
emailTxt.Text = string.Empty; phTxt.Text = string.Empty;
streetTxt.Text = string.Empty; cityTxt.Text = string.Empty;
suburbTxt.Text = string.Empty; countryTxt.Text = string.Empty;
}
}
在 class 的 SetupCustomer
方法中 AddCustomerUI
在开头添加
App.customers.Clear();
这应该对您的重复数据有所帮助。
您遇到的问题是 SetupCustomer
,您没有清除列表,因此 collection 中有多个条目。
private void SetupCustomer()
{
App.customers.Clear();
var customer = new Customer { FirstName = "Timothy", LastName = "Jennings", Email = "tim.jennings@gmail.com", Phone = "0275 202020",
Address = new Address { Street = "100 Burt Road", Suburb = "Howick", City = "Auckland", Country = "New Zealand" }
};
App.customers.Add(customer);
customer = new Customer { FirstName = "Brian", LastName = "Jones", Email = "bjones@gmail.com", Phone = "0275 903070",
Address = new Address { Street = "100 Vincent Road", Suburb = "St Lukes", City = "Auckland", Country = "New Zealand" }
};
App.customers.Add(customer);
App.customers.Add(new Customer { FirstName = "Terry", LastName = "Teo", Email = "tete@mana.com", Phone = "021 756 382",
Address = new Address { Street = "23 Ford St", City = "Auckland", Suburb = "Pakuranga", Country = "New Zealand" }
});
}
我有一个添加客户 UI,它应用了一个数据网格来显示所提供的条目,但是如果我在已经显示的情况下重新 select 添加客户,将再次添加条目。
第 1-3 行是原始的,第 4-6 行是重复的。有谁知道如何限制这种情况的发生??
在我的 MainActivity 中,我有一个带有框架的菜单导航来填充 xaml 页面。下面是初始化 class.
的代码private void AddCustomer_Click(object sender, RoutedEventArgs e)
{
Main.Content = new AddCustomerUI();
}
Frame 被称为 Main,然后将 xaml 页面分配给它的 Main.content
public partial class AddCustomerUI : Page
{
public AddCustomerUI()
{
InitializeComponent();
SetupCustomer();
customerDataGrid.ItemsSource = App.customers;
}
private void SetupCustomer()
{
var customer = new Customer { FirstName = "Timothy", LastName = "Jennings", Email = "tim.jennings@gmail.com", Phone = "0275 202020",
Address = new Address { Street = "100 Burt Road", Suburb = "Howick", City = "Auckland", Country = "New Zealand" }
};
App.customers.Add(customer);
customer = new Customer { FirstName = "Brian", LastName = "Jones", Email = "bjones@gmail.com", Phone = "0275 903070",
Address = new Address { Street = "100 Vincent Road", Suburb = "St Lukes", City = "Auckland", Country = "New Zealand" }
};
App.customers.Add(customer);
App.customers.Add(new Customer { FirstName = "Terry", LastName = "Teo", Email = "tete@mana.com", Phone = "021 756 382",
Address = new Address { Street = "23 Ford St", City = "Auckland", Suburb = "Pakuranga", Country = "New Zealand" }
});
}
private void SaveCustomer_Click(object sender, RoutedEventArgs e)
{
if (string.IsNullOrWhiteSpace(fNameTxt.Text) || string.IsNullOrWhiteSpace(lNameTxt.Text) || string.IsNullOrWhiteSpace(emailTxt.Text)
|| string.IsNullOrWhiteSpace(phTxt.Text))
//MessageBox.Show("Empty Fields", "Please look at filling out all fields on the form.");
return;
var customer = new Customer
{
FirstName = fNameTxt.Text, LastName = lNameTxt.Text, Email = emailTxt.Text, Phone = phTxt.Text,
Address = new Address { Street = streetTxt.Text, Suburb = suburbTxt.Text, City = cityTxt.Text, Country = countryTxt.Text }
};
App.customers.Add(customer);
customerDataGrid.Items.Refresh();
ResetText();
}
private void ResetText()
{
fNameTxt.Text = string.Empty; lNameTxt.Text = string.Empty;
emailTxt.Text = string.Empty; phTxt.Text = string.Empty;
streetTxt.Text = string.Empty; cityTxt.Text = string.Empty;
suburbTxt.Text = string.Empty; countryTxt.Text = string.Empty;
}
}
在 class 的 SetupCustomer
方法中 AddCustomerUI
在开头添加
App.customers.Clear();
这应该对您的重复数据有所帮助。
您遇到的问题是 SetupCustomer
,您没有清除列表,因此 collection 中有多个条目。
private void SetupCustomer()
{
App.customers.Clear();
var customer = new Customer { FirstName = "Timothy", LastName = "Jennings", Email = "tim.jennings@gmail.com", Phone = "0275 202020",
Address = new Address { Street = "100 Burt Road", Suburb = "Howick", City = "Auckland", Country = "New Zealand" }
};
App.customers.Add(customer);
customer = new Customer { FirstName = "Brian", LastName = "Jones", Email = "bjones@gmail.com", Phone = "0275 903070",
Address = new Address { Street = "100 Vincent Road", Suburb = "St Lukes", City = "Auckland", Country = "New Zealand" }
};
App.customers.Add(customer);
App.customers.Add(new Customer { FirstName = "Terry", LastName = "Teo", Email = "tete@mana.com", Phone = "021 756 382",
Address = new Address { Street = "23 Ford St", City = "Auckland", Suburb = "Pakuranga", Country = "New Zealand" }
});
}