0

ツールバーと TabContent 領域 (PRISM) を備えたビュー (メイン ビュー) があります。TabContent 領域には、同じモデル (連絡先) を別の方法で表す 2 つのタブ (2 つのビュー - ビュー A、ビュー B) があります。

ビュー A には、連絡先を含む DataGrid が含まれています。メイン ビューのツールバーには、DeleteCommand を含む「削除ボタン」が含まれています。ビュー A から選択した連絡先をコマンド パラメーターとして DeleteCommand で送信したいのですが、以下に示すコードでは、コマンド パラメーターは null です。メイン ビューは、ビュー A にある DataGrid から選択されたアイテムを取得していないようです。どうすればこれを達成できますか?

これはメイン ビューです。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="30" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>

    <DockPanel Grid.Row="0" Background="#D6D6DC">
        <ToolBar Style="{StaticResource ModuleToolBarStyle}">
            <TextBlock Margin="10,0,0,0" Text="Contacts"></TextBlock>
            <Button Name="addContactButton" ToolTip="Add Contact">
                <Image Source="/PrismApp.Controls;component/Images/add.png"/>
            </Button>
            <Button Name="deleteContactsButton" ToolTip="Delete selected Contacts"
                    Command="{Binding DeleteContactCommand}" CommandParameter="{Binding SelectedItems, ElementName=ContactsList}">
                <Image Source="/PrismApp.Controls;component/Images/delete.png"/>
            </Button>
            <ToggleButton Name="ViewAButton" ToolTip="View A" Command="{Binding NavigateToViewACommand}"
                          IsChecked="{Binding IsViewAActive}">
                <Image Source="/PrismApp.Controls;component/Images/listblack.png"/>
            </ToggleButton>
            <ToggleButton Name="ViewBButton" ToolTip="View B" Command="{Binding NavigateToViewBCommand}"
                          IsChecked="{Binding IsViewBActive}">
                <Image Source="/PrismApp.Controls;component/Images/tilesblack.png"/>
            </ToggleButton>
        </ToolBar>
    </DockPanel>

    <TabControl Grid.Row="1" prism:RegionManager.RegionName="ContactsViewRegion">
        <TabControl.ItemContainerStyle>
            <Style TargetType="{x:Type TabItem}">
                <Setter Property="Visibility" Value="Collapsed"/>
            </Style>
        </TabControl.ItemContainerStyle>
    </TabControl>
</Grid>

これはビュー A です。

<Grid>
    <DataGrid x:Name="ContactsList" Margin="20" AutoGenerateColumns="False" IsReadOnly="True" CanUserResizeRows="False"
              CanUserResizeColumns="True" ColumnWidth="*" ItemsSource="{Binding Contacts}">

    </DataGrid>
</Grid>

ビュー モデルは、メイン ビュー、ビュー A、ビュー B で同じです。

4

1 に答える 1