0

私は MainWindowView.xaml にいます。ユーザーコントロールが含まれています。

パラメータでコマンドを設定しようとしています。このパラメーターは、gridControl (devexpress アイテム) の選択された行です。

私は2つのバインディングを試みましたが、どちらも間違っていました(パラメータが見つかりません):

<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

ItemsSourceWPF では、特定の型のコレクションをプロパティにデータ バインドし、コレクション内のオブジェクトの型のプロパティをプロパティにデータ バインドするのが通例ですSelectedItem(この例で を使用しても違いはありません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

より一般的な答えは次のようになります。

ユーザーコントロールからオブジェクト/プロパティにアクセスする場合、ユーザーコントロールはオブジェクト/プロパティを依存関係プロパティで公開する必要があり、この DP にバインドできます。

もう 1 つの方法は、Usercontrol の DataContext がプロパティを公開してから、usercontrol の Datacontext.Property にバインドするかどうかを確認することです。

あなたの場合、ViewmodelとViewバインディングの詳細情報が必要になります

于 2014-09-25T09:45:40.363 に答える