1

WPF の DataContext の問題に夢中になっています。ここの StackOverflow のコメントを読みましたが、修正できません。

次のデータ テンプレートがあります。

<DataTemplate  x:Key="TodoTemplate"  >
    <Grid Margin="5 10 10 5" >

        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="30" MaxWidth="30"/>
            <ColumnDefinition Width="30" MaxWidth="30"/>
            <ColumnDefinition Width="30" MaxWidth="30"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>

        <Grid.ContextMenu>
            <ContextMenu>
                <MenuItem Command="{Binding Path=View}">
                    <MenuItem.Header>
                        <WrapPanel>
                            <Label Margin="30 0 0 0" Background="LightBlue">View Item</Label>
                        </WrapPanel>
                    </MenuItem.Header>
                </MenuItem>

そして、テンプレートを再利用したいリストボックス:

    <ListBox Grid.Row="4" ItemsSource="{Binding Path=Items}" Margin="10" ItemTemplateSelector="{StaticResource categoryItemSelector}" SelectedItem="{Binding Path=CurrentItem,Mode=TwoWay}" MouseDoubleClick="ListBox_MouseDoubleClick"  >

    </ListBox>

Listbox コードはページに埋め込まれ、このページはビュー モデル インスタンスの DataContext を設定します。

  DataContext="{Binding Source={StaticResource Locator},Path=CategoryDetails}">

コンテキスト メニューはビジュアル ツリーの一部ではなく、データ コンテキストを直接再利用できないことを知りました。問題は、同じコンテキスト メニューを持つ MemoTemplate もあり、ここでビュー モデルを再利用したいということです。誰かがそれを解決するためのヒントを教えてもらえますか?

ContextService パラメータを使用して、プロキシを設定しようとしました。しかし、コンテキスト メニューから View コマンドが呼び出されません。

ここで、自分のページから (リストボックス経由で) ビュー モデル インスタンスを再利用するにはどうすればよいですか?

よろしくお願いしますビョルン

4

1 に答える 1