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();