2017-01-21 1 views
0

나는, 나는 다음과 같은 한 MouseDown 이벤트 내부의 버튼에 액세스하려면 : C#을액세스 버튼

<ItemsControlx:Name="icName" MouseDown="icItems_MouseDown" > 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <Button x:Name="btnName" Tag="{Binding ItemName}"</Button> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
</ItemsControl> 

:

XAML

private void icName_MouseDown(object sender, MouseButtonEventArgs e) 
    { 
     ??? 
    } 

어떻게 할 수 ItemsControl에서 단추에 액세스 MouseDown 이벤트

예 : MessageBox.Show (ItemName);

감사

+0

비활성화 모드 –

+1

@AbdulsalamElsharif의 버튼을 실제로 여기에 달성하려고하는지 설명해주십시오. 왜 버튼에 액세스하고 싶습니까? – Clemens

+0

비활성화 된 버튼에 대해 다른 질문에서 제안한 것을 수행해야합니다. 주위에 절대 안돼 :) 내 다른 답변을 올바른 것으로 표시 할 수도 있습니다. – Emad

답변

-1

당신은 버튼 그룹에 대한 클릭을 처리하고 클릭 어느 알 수 없다. 이 같은 동일한 핸들러 각 버튼의 클릭을 처리해야

private void icItem_MouseDown(object sender, MouseButtonEventArgs e) 
{ 
    var btn = sender as Button; 
    if(btn!=null) 
     MessageBox.Show(btn.Tag); 
} 
+0

다시 버튼이 비활성화 모드입니다. –

1

다음 샘플 코드를 참조하십시오 :

<Button x:Name="btnName" Tag="{Binding ItemName}" MouseDown="icItem_MouseDown"></Button> 

그런 다음 sender는 호출하는 버튼입니다.

private void icName_MouseDown(object sender, MouseButtonEventArgs e) 
{ 
    ContentPresenter cp = e.OriginalSource as ContentPresenter; 
    if (cp != null && VisualTreeHelper.GetChildrenCount(cp) > 0) 
    { 
     Button button = VisualTreeHelper.GetChild(cp, 0) as Button; 
     //do whatever you want with the Button here... 
     if (button != null && button.Tag != null) 
      MessageBox.Show(button.Tag.ToString()); 

    } 
} 

<ItemsControl x:Name="icName" MouseDown="icName_MouseDown" > 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <Button x:Name="btnName" Content="Button" IsEnabled="False" Tag="{Binding ItemName}"></Button> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 
관련 문제