Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 传递ListView';将多个SelectedItems作为命令参数_C#_Xaml_Mvvm_Command - Fatal编程技术网

C# 传递ListView';将多个SelectedItems作为命令参数

C# 传递ListView';将多个SelectedItems作为命令参数,c#,xaml,mvvm,command,C#,Xaml,Mvvm,Command,我已经设法通过这种方式将多个选定项作为参数传递给命令。 我认为: <Button Command="{Binding MyCommand}" CommandParameter="{Binding SelectedItems, ElementName=MyListView}" /> 这个解决方案目前正在发挥作用,但我想知道我是否能够以更好的方式从列表视图访问多个SelectedItems。可能在第一个表达式中,我可以得到一个null值。您可以期望参数是IEnumer

我已经设法通过这种方式将多个选定项作为参数传递给命令。 我认为:

<Button Command="{Binding MyCommand}" 
        CommandParameter="{Binding SelectedItems, ElementName=MyListView}" />

这个解决方案目前正在发挥作用,但我想知道我是否能够以更好的方式从
列表视图访问多个
SelectedItems
。可能在第一个表达式中,我可以得到一个
null
值。

您可以期望参数是
IEnumerable
。我的观点如下:

IEnumerable enumerable = parameter as IEnumerable;
if (enumerable == null)
    throw new ArgumentException("parameter has to be an IEnumerable.", "parameter");

var items = enumerable.OfType<FtpListItem>().ToArray();
IEnumerable enumerable=参数为IEnumerable;
if(可枚举==null)
抛出新ArgumentException(“参数必须是IEnumerable。”,“参数”);
var items=enumerable.OfType().ToArray();
或者,您可以尝试一些自定义的
ICollectionView
实现。以下博文详细讨论了您的问题和可能的解决方案:

,

IEnumerable enumerable = parameter as IEnumerable;
if (enumerable == null)
    throw new ArgumentException("parameter has to be an IEnumerable.", "parameter");

var items = enumerable.OfType<FtpListItem>().ToArray();