У меня есть код, который изменяет состояние логического свойства при щелчке мышью, в зависимости от имени объекта, по которому щелкнули:
private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
FrameworkElement feSource = e.Source as FrameworkElement;
switch (feSource.Name)
{
case "r1s1":
if (r1s1.IsSelected == false)
r1s1.IsSelected = true;
else
r1s1.IsSelected = false;
break;
case "r1s2":
if (r1s2.IsSelected == false)
r1s2.IsSelected = true;
else
r1s2.IsSelected = false;
break;
.............
}
e.Handled = true;
}
Я хотел бы сделать то же действие, передавая имя отправителя (r1s1, r1s2, .. и т. Д.) В качестве параметра функции, где эта строка объединяется с именем свойства (IsSelected) просто для оптимизации кода. Нечто подобное (просто идея):
private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
FrameworkElement feSource = e.Source as FrameworkElement;
ChangeSelection (feSource.Name)
}
public void ChangeSelection(string name)
{
if (name.IsSelected == false)
name.IsSelected = true;
else
name.IsSelected = false;
}
Пожалуйста, поправьте меня. Что я делаю не так?