3
  1. MainWindowViewModelには、顧客を ID で表示するViewCustomerCommand(string id)コマンドがあります。
  2. TabControlを含む MainWindow.xaml
  3. TabControl には、Customers コレクションにバインドされる DataGrid を含む UserControl があります
    | ID | 顧客 |

MainWindow.xamlのコマンド パラメーターとして、DataGrid で選択した行の "id" 列を渡すにはどうすればよいですか?

MainWindow.xaml
    <Button Command="{Binding ViewCustomerCommand}" CommandParameter="??? how to pass id of selected customer ???" />
4

1 に答える 1

4

SelectedItem本当にfrom を a 内で公開する必要がある場合はUserControl、そのようなプロパティで拡張してみませんか?

例えば

public class MyUserControl : UserControl
{
    private static readonly SomeType SelectedItemProperty = 
        DependencyProperty.Register("SelectedItem", typeof(SomeType), typeof(MyUserControl));

    public SomeType SelectedItem
    {
        get { return (SomeType)GetValue(SelectedItemProperty); }
        set { SetValue(SelectedItemProperty, value); }
    }
}

これSelectedItemDataGrid、 のUserControlをそのSelectedItemプロパティにバインドできます。

<MyUserControl>
    <DataGrid SelectedItem="{Binding SelectedItem, 
              RelativeSource={RelativeSource FindAncestor, 
              AncestorType={x:Type MyUserControl}}" />
</MyUserControl>

SelectedItemでプロパティにアクセスする方法を見つけるだけですTabItem。しかし、私はあなたにその部分を残しています。

これは私のアイデアの説明にすぎず、小さなエラーが含まれている可能性があることに注意してください。

于 2013-05-15T12:06:10.897 に答える