我有一個MVVM項目一個視圖有一個網格,允許多選,投對象名單<T>
<DataGrid x:Name="DataGridBodegas" ItemsSource="{Binding MyLis}" Grid.Row="1">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<cmd:EventToCommand Command="{Binding _MyCommand}" CommandParameter="{Binding ElementName=DataGridBodegas,Path=SelectedItems}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<DataGrid.Columns>
<DataGridTextColumn Header="{x:Static resources:Labels.ACOPIO_SeleccioneBodegas}" Width="Auto" Binding="{Binding StrNombreBodega}" ClipboardContentBinding="{x:Null}"/>
</DataGrid.Columns>
</DataGrid>
在VM我有一個ICommand的
public override void CommandSelectionChange(object p)
{
MyList.RemoveAll(x=> x.IntIdBodega != -1);
MyList = p as List<Merlin_INV_Bodegas>; // Allways return Null
}
如果我看一看到p object
它是一個SelectedItemCollection
,它具有我的目標類型的元素,但如果嘗試投射爲此
(List<TargetType>)p // Throw exception
p as List<TargetType> // Allways return null
foreach(TargetType t in p)
{
} // Throw exception
我的問題是 如何正確地將p投射到我的列表中?
您是否嘗試過使用'((TargetType [])p).ToList();'。請記住,數組是通過這種方式在列表中複製的。 –
數組不是一個列表。 –
@ AlessandroD'Andria號,但我正在嘗試 –