DataGrid
ve bazı kayıtlar var. İstediğim, klavyede Delete tuşuna bastığımda satır silinir ve hatta koleksiyondaki kayıt silinir.Sil tuşu ile DataGrid satır silme
CanUserDeleteRows parametresinin hile yaptığını düşünmüştüm ama işe yaramıyor. Silmeye bastığımda, satır reddeder, ancak yine de koleksiyonda kalır.
Bu benim 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>
Bu benim ViewModel geçerli:
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>();
}
}
benim ViewModel bazı etkinlik eklemek gerekir mi? Yoksa farkında olmadığım başka bir yol var mı?
Şimdiden teşekkürler.
Do sorunu çözmek gerekir
sahip/ICommand '[bazıları uygulamayı kullanır (https://msdn.microsoft.com/en-us/library/system.windows.input.icommand (v = vs.110) .aspx) arabirimi? Belki bazı 'RelayCommand'? – dkozl
Evet Kendi uygulamam var. Ne öneriyorsun? Uygulamamı görmeniz için buraya yüklemem gerekir mi? –
Gerek yok. Sadece eşyaların koleksiyonunda neden kaldığını merak ediyorum. Benim durumumda olduğu gibi çıkarılmalıdır. Koleksiyonunuz silme işlemine izin vermezse 'CanUserDeleteRows' seçeneği göz ardı edilir. [MSDN] 'dan (https://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid.canuserdeleterows (v = vs.110) .aspx): _ ** Satır silme, öğeyi kaldırır Satır ItemsSource ** 'dan temsil eder. ItemsSource silme işlemlerine izin vermiyorsa, kullanıcı bu özellik true olarak ayarlanmış olsa bile satırları silemez. – dkozl