【发布时间】:2010-12-24 00:14:59
【问题描述】:
我有在鼠标点击时更改布尔属性状态的代码,具体取决于点击对象的名称:
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;
}
请纠正我。我做错了什么?
【问题讨论】:
-
不清楚实际的
sender是否是需要切换的复选框/收音机,或者您有一组单独的对象应该被选中?如果是sender,那么您可以简单地将其转换为适当的控件并切换其状态。 -
实际的“Sender”是一个具有自定义依赖属性“IsSelected”的 WPF 自定义控件。将其转换为适当的类型怎么样 - 我将深入研究一个理论,以实现这一点。没有代码示例,我很难理解这种方式
-
在大家的帮助下完成了。非常感谢
标签: c# function parameters methods