在我的視圖中,我有一個DataGrid
,它存儲2個遞減類型的對象。每一行都有一個帶有連接到ViewModel的命令的按鈕。在ViewModel中,我需要找出哪種類型的對象已被選中。WPF MVVM - 通過ViewModel訪問視圖中DataGrid的DependencyProperty
問題是什麼是在ViewModel中從Execute
命令方法訪問的SelectedItem
屬性的最好和簡單方法?
到目前爲止,我這樣做是這樣的:
var window = Application.Current.Windows.OfType<Window>()
.SingleOrDefault(x => x.IsActive);
var dataGrid = (DataGrid) window.FindName("MyGridName");
...
更新 - XAML中:
<DataGrid Name="MyGridName" ItemsSource="{Binding Elements}"
AutoGenerateColumns="False" CanUserAddRows="False"
CanUserDeleteRows="False" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTemplateColumn Width="auto">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Name="OptionsBtn" Margin="5" Width="auto"
Height="30" Content="Options"
Command="{Binding ElementName=ElementsViewWindow,
Path=DataContext.ShowOptionsMenuCommand}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
綁定了'你的網格SelectedItem'一些VM屬性或使用'CommandParameters'和停止不管你正在嘗試做... – user3292642
顯示您的Xaml中的命令以及如何綁定它。我很高興能向您展示如何使用該命令參數方法! – CHS
'' – XAMlMAX