Как реализовать удаление/изменение/добавление выделенных элементов ListView
class MainWindowModel : DependencyObject
{
public MainWindowModel()
{
var studentList = Data.Students.GetStudents();
Students = CollectionViewSource.GetDefaultView(studentList);
}
public ICollectionView Students
{
get { return (ICollectionView)GetValue(StudentsProperty); }
set { SetValue(StudentsProperty, value); }
}
public static readonly DependencyProperty StudentsProperty =
DependencyProperty.Register("Students", typeof(ICollectionView), typeof(MainWindowModel), new PropertyMetadata(null));
private ICommand _clickCommand;
private bool _canExecuteDelete = true;
private bool _canExecuteChange = true;
private bool _canExecuteAdd = true;
public ICommand DeleteCommand
{
get
{
return _clickCommand ?? (_clickCommand = new CommandHandler(() => { DeleteAction(); }, _canExecuteDelete));
}
}
public ICommand ChangeCommand
{
get
{
return _clickCommand ?? (_clickCommand = new CommandHandler(() => { ChangeAction(); }, _canExecuteChange));
}
}
public ICommand AddCommand
{
get
{
return _clickCommand ?? (_clickCommand = new CommandHandler(() => { AddAction(); }, _canExecuteAdd));
}
}
private void DeleteAction()
{
// If (ICollectionView Students.Count == 0)
//{
// _canExecuteDelete = false;
// _canExecuteChange = false;
//}
}
private void ChangeAction()
{
}
private void AddAction()
{
_canExecuteDelete = true;
_canExecuteChange = true;
}
public class CommandHandler : ICommand
{
private Action _action;
private bool _canExecute;
public CommandHandler(Action action, bool canExecute)
{
_action = action;
_canExecute = canExecute;
}
public bool CanExecute(object parameter)
{
return _canExecute;
}
public event EventHandler CanExecuteChanged;
public void Execute(object parameter)
{
_action();
}
}
}
public class Student
{
public int Id { get; set; }
public string FirstName { get; set; }
public string FullName { get { return FirstName + " " + Last; } }
public string Last { get; set; }
public int Age { get; set; }
public bool Gender { get; set; }
}
public class StudentViewModel : INotifyPropertyChanged
{
private Student student;
public StudentViewModel(Student student)
{
this.student = student;
}
public string FirstName
{
get { return student.FirstName; }
set
{
student.FirstName = value;
OnPropertyChanged("FirstName");
}
}
public string FullName
{
get { return student.FirstName + " " + student.Last; }
set
{
student.FirstName = value.Split(' ')[0];
student.Last = value.Split(' ')[1];
OnPropertyChanged("FullName");
}
}
public string Last
{
get { return student.Last; }
set
{
student.Last = value;
OnPropertyChanged("Last");
}
}
public int Id
{
get { return student.Id; }
set
{
student.Id = value;
OnPropertyChanged("Id");
}
}
public int Age
{
get { return student.Age; }
set
{
student.Age = value;
OnPropertyChanged("Age");
}
}
public bool Gender
{
get { return student.Gender; }
set
{
student.Gender = value;
OnPropertyChanged("Gender");
}
}
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged([CallerMemberName]string prop = "")
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(prop));
}
}
public class Students
{
[XmlElement("Student")]
public List<Student> List { get; set; }
<Button Command="{Binding AddCommand}" CommandParameter="{Binding SelectedItems, ElementName=StudentListBox}" Content="Добавить" HorizontalAlignment="Left" Margin="10,0,0,10" Grid.Row="1" Width="75" Height="20" VerticalAlignment="Bottom"/>
<Button Command="{Binding ChangeCommand}" CommandParameter="{Binding SelectedItems, ElementName=StudentListBox}" Content="Изменить" HorizontalAlignment="Left" Margin="90,0,0,10" Grid.Row="1" Width="75" Height="20" VerticalAlignment="Bottom"/>
<Button Command="{Binding DeleteCommand}" CommandParameter="{Binding SelectedItems, ElementName=StudentListBox}" Content="Удалить" HorizontalAlignment="Left" Margin="170,0,0,10" Grid.Row="1" Width="75" Height="20" VerticalAlignment="Bottom"/>
<ListView x:Name="StudentListBox" Margin="10" ItemsSource="{Binding Students}" SelectionMode="Multiple">
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding Id}" Header="ID" />
<GridViewColumn DisplayMemberBinding="{Binding FullName}" Header="Фамилия Имя" />
<GridViewColumn DisplayMemberBinding="{Binding Age, ValidatesOnExceptions=True, StringFormat={}{0} лет}" Header="Возраст" />
<GridViewColumn DisplayMemberBinding="{Binding Gender, ValidatesOnExceptions=True, Converter={StaticResource GenderConverter}}" Header="Пол" />
</GridView>
</ListView.View>
</ListView>
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Есть бд на MySQL которая располагается на хостингеНужно реализовать возможность работать с базой локально когда отсудствует подключение к интернету
Привет коллегиЕсть данные по заказам, кто делает и сколько дней, вытянул основные поля это имя сотрудника и кол-во дней на выполнение заказа:
Пишу пробное приложение, простой рекордер стрима со штатной камеры и запись вmp4
Выбирается третий элемент в dataGridVie2, хотя нажимаю на любойКак сделать чтобы в dataGridView2