【发布时间】:2014-07-09 04:02:13
【问题描述】:
我有一个名为 Person.cs 的简单类,如下所示:
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string City { get; set; }
}
我有一个名为 MainWindowViewModel.cs 的 ViewModel,如下所示:
public class MainWindowViewModel : INotifyPropertyChanged
{
public MainWindowViewModel()
{
People = new ObservableCollection<Person>();
}
private ObservableCollection<Person> _people;
public ObservableCollection<Person> People
{
get
{
return _people;
}
set
{
_people = value;
OnPropertyChanged("People");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
我在 MainWindow.xaml 中有一个 Datagrid,如下所示:
到目前为止一切正常。现在我想在 DataGrid 失去焦点时删除它的空行。我可以这样做:
private void maindg_LostFocus(object sender, RoutedEventArgs e)
{
var list = (IList)maindg.ItemsSource;
var elementType = list.GetType().GetGenericArguments()[0];
var newElement = Activator.CreateInstance(elementType);
foreach(var item in maindg.Items)
{
if((((Person)item).FirstName = null || ((Person)item).FirstName = "") && (((Person)item.LastName) = null || ((Person)item).LastName = "") && (((Person)item).City = null || ((Person)item).City = ""))
{
list.Remove(item);
}
}
}
但我打算创建类似可重用控件的东西,所以我无法将item 类型转换为Person 对象。那么,如何检查item 是空还是空呢?
【问题讨论】: