Event handler in DataTemplate

前端 未结 3 835
梦如初夏
梦如初夏 2020-12-16 02:23

I have WPF ComboBox inside a data template (a lot of comboboxes in listbox) and I want to handle enter button. It would be easy if it was e.g. a button - I would use Command

3条回答
  •  情深已故
    2020-12-16 02:45

    I've solved my problem by using a usual event handler where I walk through the visual tree, find corresponding button and call it's command. If anybody else has the same problem, please post a comment and I'll provide more details of realization.

    UPD

    Here is my solution:

    I search the visual tree for a button and than execute command associated with button.

    View.xaml:

    
    

    View.xaml.cs:

    private void ComboBox_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Enter)
        {
            var parent = VisualTreeHelper.GetParent((DependencyObject)sender);
            int childrenCount = VisualTreeHelper.GetChildrenCount(parent);
    
            for (int i = 0; i < childrenCount; i++)
            {
                var child = VisualTreeHelper.GetChild(parent, i) as Button;
                if (null != child)
                {
                    child.Command.Execute(null);
                }
            }
        }
    } 
    

提交回复
热议问题