2017-01-21 10 views
0

Я хочу, чтобы получить доступ к кнопке внутри MouseDown случае, я следующее:Кнопка доступа внутри DataTemplate в WPF ItemsControl

XAML:

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

C#:

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

Как я могу доступ к кнопке из события ItemsControl MouseDown

ex: MessageBox.Show (ItemName);

Благодаря

+0

Кнопка в режиме отключения –

+1

@AbdulsalamElsharif Пожалуйста, объясните, что вы на самом деле пытаетесь достичь здесь. Почему вы хотите получить доступ к Button? – Clemens

+0

О вашей отключенной кнопке вы должны сделать то, что я предложил в вашем другом вопросе. Ни в коем случае не стоит :) Вы можете отметить мой другой ответ как правильно тоже – Emad

ответ

-1

Вы не можете обрабатывать нажатие на группы кнопок и знать, какой один щелкают. Вы должны обработать щелчок для каждой кнопки с таким же обработчиком, как это:

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

Тогда sender кнопка вызова:

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

Опять же, кнопка находится в отключенном режиме –

1

Пожалуйста, обратитесь к следующему коду образца.

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> 

 Смежные вопросы

  • Нет связанных вопросов^_^