我有一個帶有工具欄和TabContent區域(PRISM)的視圖(主視圖)。 在TabContent區域我有兩個選項卡(兩個視圖 - 視圖A,視圖B-)以不同的方式表示相同的模型(聯繫人)。將CommandParameters綁定到其他視圖的屬性
視圖A包含帶聯繫人的DataGrid。主視圖中的工具欄包含一個帶有DeleteCommand的「刪除按鈕」。我想使用DeleteCommand將視圖A中選定的聯繫人作爲命令參數發送,但使用下面顯示的代碼,命令參數爲空。它看起來像主視圖不會從位於視圖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是如何製作的?每個View有沒有ViewModel,或者只有一個ViewModel? –
@NawedNabiZada只是一個爲所有視圖(主視圖,視圖A和視圖B) – chincheta73
然後,你可以讓你的生活更輕鬆,你所選的項目綁定到一個屬性在你的虛擬機,並在你的命令,你可以訪問該屬性 –