Вероятно, наиболее простым способом было бы выставить BarDataGrid
как свойство.
Измените имя XAML (например, на x:Name="barDataGrid"
) и добавьте это свойство в код UserControl:
public DataGrid BarDataGrid { get { return barDataGrid; } }
Затем привяжите к свойству SelectedItem объекта DataGrid, как показано ниже:
CommandParameter="{Binding BarDataGrid.SelectedItem, ElementName=AdjacentControl}"
Более чистым решением было бы не предоставление дочернего элемента DataGrid, а только его SelectedItem с помощью специального свойства зависимости.
public static readonly DependencyProperty SelectedItemProperty =
System.Windows.Controls.Primitives.Selector.SelectedItemProperty.AddOwner(
typeof(AdjacentControl));
public object SelectedItem
{
get { return GetValue(SelectedItemProperty); }
set { SetValue(SelectedItemProperty, value); }
}
Вы бы привязали SelectedItem DataGrid к этому свойству с помощью привязки RelativeSource
<DataGrid SelectedItem="{Binding SelectedItem,
RelativeSource={RelativeSource AncestorType=UserControl}}"
и свяжите CommandParameter следующим образом:
CommandParameter="{Binding SelectedItem, ElementName=AdjacentControl}"