我有改變鼠標點擊布爾屬性的狀態的代碼,根據點擊的對象的名稱:如何在C#中將對象的名稱作爲參數傳遞給函數?
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;
}
請糾正我。我做錯了什麼?
目前尚不清楚實際的「發件人」是否需要切換的複選框/收音機,還是應該選擇單獨的一組對象?如果它是'發件人',那麼你可以簡單地將其轉換爲適當的控件並切換其狀態。 – Groo 2009-12-07 13:59:01
實際「發件人」是具有自定義依賴項屬性「IsSelected」的WPF自定義控件。怎麼樣把它轉換成適當的類型 - 我會深入挖掘一個理論來實現這一點。沒有代碼的例子,我很難理解這種方式 – rem 2009-12-07 14:26:12
已經做到了,在你們所有人的幫助下。非常感謝 – rem 2009-12-07 14:45:31