私はDataGrid
とその中にいくつかのレコードがあります。私が望むのは、キーボードのDeleteキーを押すと、行が削除され、コレクション内のレコードさえも削除されます。削除キーを使用してDataGridから行を削除する方法
私はCanUserDeleteRowsパラメータがトリックを行うと思ったが、うまくいきませんでした。私がdeleteを押すと、行は消えますが、まだコレクションに残ります。
これは私のDataGrid
:
<DataGrid
Name="ProjectsGrid"
ItemsSource="{Binding Path=FilesCollection}"
AutoGenerateColumns="False"
CanUserAddRows="False"
CanUserDeleteRows="True">
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="Use" Binding="{Binding Include}"/>
<DataGridTextColumn Header="Name" Binding="{Binding Path, Converter={StaticResource PathConverter}}"/>
</DataGrid.Columns>
</DataGrid>
これは私のViewModelです:
namespace Validator.ViewModels
{
class SettingsVm : INotifyPropertyChanged
{
public void ChangeProperty(string propertyName)
{
if (this.PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
public event PropertyChangedEventHandler PropertyChanged;
public ObservableCollection<CsprojFile> FilesCollection { get; set;}
public SettingsVM()
{
FilesCollection = new ObservableCollection<CsprojFile>();
}
}
は私のViewModelにいくつかのイベントを追加する必要がありますか?それとも私が気付いていない他の方法がありますか?
ありがとうございます。
あなたの問題を解決する必要があります/ [ 'のICommandのいくつかの実装を使用しています'](https://msdn.microsoft.com/en-us/library/system.windows.input.icommand(v = vs.110).aspx)interface?おそらく 'RelayCommand'の中には? – dkozl
はい私は自分の実装を持っています。あなたは何を提案しますか?私の実装をここにアップロードして見せてください。 –
不要です。私はなぜアイテムがあなたのコレクションに残るのか不思議です。それは私の場合と同様に削除する必要があります。あなたのコレクションが削除を許可しない場合、 'CanUserDeleteRows'オプションは無視されます。 [MSDN](https://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid.canuserdeleterows(v = vs.110).aspx):_ **行を削除すると、アイテムが削除されますその行はItemsSource **から表されます。 ItemsSourceが削除を許可しない場合、このプロパティがtrueに設定されていても、ユーザーは行を削除できません。 – dkozl