ツールバーとTabContent領域(PRISM)を持つビュー(メインビュー)があります。 TabContent領域には、同じモデル(連絡先)を別の方法で表す2つのタブ(2つのビュー-View A、View B-)があります。他のビューからのプロパティへのCommandParametersのバインド
View Aには連絡先を含むDataGridが含まれています。メインビューのツールバーには、DeleteCommandを含む「Delete Button」が含まれています。私はDeleteCommandをコマンドパラメータとしてビューAから選択した連絡先で送信したいが、以下に示すコードではコマンドパラメータは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.
どのようにViewModelを作成しましたか?ビューごとにViewModelがあるのか、それともすべてのViewModelが1つだけですか? –
@NawedNabiZadaすべてのビュー(メインビュー、ビューA、およびビューB)の1つだけ – chincheta73
あなたの人生を楽にし、選択したアイテムをVM内のプロパティにバインドすると、そのプロパティにアクセスできます。 –