0
我知道,我應該以刪除DataGrid中連續使用PreviewKeyDown事件,所以我有這樣的代碼在UI:如何從WPF中的DataGrid控件中刪除一行?
<DataGrid Name="dgPlaces"
AutoGenerateColumns="True"
ItemsSource="{Binding Places}"
PreviewKeyDown="dgPlaces_PreviewKeyDown"
/>
然後我在代碼隱藏此代碼:
private void dgPlaces_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Delete)
{
if (dgPlaces.SelectedItems.Count > 0)
{
foreach (var row in dgPlaces.SelectedItems)
{
//here should be delete logic for each row
}
}
}
}
我有這樣的代碼視圖模型:
public class ViewModel //: INotifyPropertyChanged
{
public ViewModel()
{
}
private ObservableCollection<Place> places = new ObservableCollection<Place>()
{
new Place { Id = 1, City = "New York", Country = "US" },
new Place { Id = 2, City = "Chicago", Country = "US" },
new Place { Id = 3, City = "Miami", Country = "US" }
};
public ObservableCollection<Place> Places
{
get
{
return places;
}
set
{
places = value;
RaisePropertyChanged("Places");
}
}
}
和模型類我有身份證,城市和鄉村的屬性:
public class Place
{
public int Id { get; set; }
public string City { get; set; }
public string Country { get; set; }
}
我的問題與代碼隱藏文件中的循環有關:如何從行中提取Id以便應用程序可以知道應該刪除哪一行?
foreach (var row in dgPlaces.SelectedItems)
{
//here should be delete logic for each row
}
爲什麼我不能只是放。之後,並從智能感知得到ID?我不明白。
它的工作原理。謝啦! :) – vvasovic