0

我在我的 MainWindowView.xaml 中。它包括一个用户控件。

我正在尝试使用参数设置命令。此参数是 gridControl(devexpress 项)的选定行。

我试过两个绑定,都错了(他们没有找到参数):

<Button Command="{Binding DeleteCommand}" CommandParameter="{Binding Path=lst1, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type uc:ucImpianti}}}" Style="{DynamicResource BtnToolBar}"/>

<Button Command="{Binding DeleteCommand}" CommandParameter="{Binding ElementName=lst1, Path=FocusedRow}" Style="{DynamicResource BtnToolBar}"/>

我如何编写绑定以在 UC 中传递 gridControl 的选定行?

我的命令定义是:

public ICommand DeleteCommand { get; private set; }
private void DeleteRecord(object parameter)
{
    Debug.WriteLine(parameter);
}
[...]
DeleteCommand = new DelegateCommand<object>(DeleteRecord, CanAlways);
4

2 回答 2

1

在 WPF 中习惯于将某个类型的集合数据绑定到ItemsSource属性,并将集合中对象类型的属性数据绑定到SelectedItem属性(本示例使用 a 没有区别ListBox):

<ListBox ItemsSource="{Binding YourCollection}" 
    SelectedItem="{Binding YourSelectedItem}" ... />

通过此设置,您可以将数据直接YourSelectedItem从属性绑定到CommandParameter属性:

<Button Command="{Binding DeleteCommand}" CommandParameter="{Binding YourSelectedItem}"
    Style="{DynamicResource BtnToolBar}" />
于 2014-09-25T09:25:31.950 回答
0

更一般的答案是:

如果您想从用户控件访问对象/属性,则 UserControl 应该使用依赖属性公开对象/属性,并且您可以绑定到此 DP。

另一种方法是检查用户控件的 DataContext 是否公开该属性,然后绑定到用户控件的 Datacontext.Property。

所以对于你的情况,我需要更多关于你的 Viewmodel 和 View 绑定的信息

于 2014-09-25T09:45:40.363 回答