【发布时间】:2014-05-14 12:51:17
【问题描述】:
大家好,我已经研究了两天关于如何删除 wpf 数据网格中的选定行,但我发现没有任何用处。我在下面使用了PreviewKeyDown 事件处理程序,但都是徒劳的。我只想删除由用户。
我是 MVVM 模式,我的代码是:
public ObservableCollection<VLANSPropertyClass> vlan { get; set; }
vlan = new ObservableCollection<VLANSPropertyClass>();
public ICommand AddVlan
{
get
{
if (_addVlan == null)
_addVlan = new RelayCommand(() => this.AddVlans());
return _addVlan;
}
}
public ICommand RemoveVlan
{
get
{
if (_removeVlan == null)
_removeVlan = new RelayCommand(() => this.RemoveVlans());
return _removeVlan;
}
}
void AddVlans()
{
Console.WriteLine("Add vlan");
var serial = new VLANSPropertyClass();
serial.S_No = vlan.Count + 1;
Console.WriteLine(serial.S_No);
serial.vname = VlanName;
Console.WriteLine(serial.vname);
serial.vid = VlanID;
Console.WriteLine(serial.vid);
serial.ip = VlanIP1 + "." + VlanIP2 + "." + VlanIP3 + "." + VlanIP4;
Console.WriteLine(serial.ip);
serial.vports = SelectedVlanPort;
vlan.Add(serial);
}
void RemoveVlans()
{
var rem = new VLANSPropertyClass();
rem.S_No = vlan.Remove();
rem.vname = vlan.Remove();
rem.ip = vlan.Remove();
}
任何人都可以为我提供解决此问题的方法吗?任何帮助都将不胜感激。
【问题讨论】:
-
将
DataGrid.SelectedItem绑定到 ViewModel 中的相关属性。然后在您的 ViewModel 中为相关的Command创建一个InputBinding,然后在命令执行代码中,只需从 ObservableCollection 中删除 SelectedItem。哦,顺便说一句,删除所有这些可怕的代码并使用正确的 DataBinding。 WPF 不是 winforms。