DataGrid.SelectedItems から汎用 List への汎用 Converter を作成しようとしています
public class SelectedItemsToListConverter : BaseConverter, IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
DataGrid dg = (DataGrid)parameter;
Type type = parameter.GetType().MemberType.GetType();
return dg.SelectedItems.OfType<type.GetType()>().ToList();
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
object
パラメーターでは、全体を割り当てています。DataGrid
希望を持って、の基本型を取得できますItemsSource
しかし、試してみると
dg.SelectedItems.OfType<type.GetType()>().ToList();
また
dg.SelectedItems.OfType<type>().ToList();
タイプを認識しません。
タイプを取得してに渡すにはどうすればよいdg.SelectedItems.OfType<T>
ですか?
これを実行する汎用コンバーターは既にありますか?
注:SelectedItems
のパラメーターとして使用するように変換する必要がありますICommand
。コマンドは を想定してList<T>
おり、コンバーターはSelectedItemsをList<T>
<DataGrid x:Name="CausacionesDisponibles" GridLinesVisibility="Vertical" SelectionUnit="FullRow" ItemsSource="{Binding CausacionesRealizadasAlTercero}" IsReadOnly="True" AutoGenerateColumns="False">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<cmd:EventToCommand Command="{Binding DetallarCausacionCommand}" CommandParameter="{Binding ElementName=CausacionesDisponibles,Path=SelectedItems}" HERE NEED TO USE THE CONVERTER/>
</i:EventTrigger>
</i:Interaction.Triggers>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding StrIdDocumento}" Header="{x:Static resources:Labels.GENERAL_IdDocumeto}"/>
<DataGridTextColumn Binding="{Binding DatFechaDocumento}" Header="{x:Static resources:Labels.GENERAL_FechaDocumento}"/>
<DataGridTextColumn Binding="{Binding StrUsuarioGenera,StringFormat=\{0:d\}}" Header="{x:Static resources:Labels.GENERAL_GeneradoPor}"/>
</DataGrid.Columns>
</DataGrid>