ListCollectionView.Refresh()和RoutedCommand之间的奇怪行为

时间:2011-07-05 07:34:42

标签: c# wpf

我有ListView绑定到ListCollectionView

在同一个窗口中,我有一个Button,其附加RoutedCommand没有CanExecute处理程序。

    public static RoutedCommand RefreshCommand = new RoutedCommand();

<CommandBinding Command="{x:Static local:DatabaseTaskViewer.RefreshCommand}"Executed="RefreshCommandExecuted"/>

<Button Command="{x:Static local:DatabaseTaskViewer.RefreshCommand}">Refresh</Button>



private void RefreshCommandExecuted(object sender, ExecutedRoutedEventArgs e)
{
    Presenter.Process();
    e.Handled = true;
}

问题在于,只要我ListCollectionView.Refresh()将新过滤器应用于我的收藏集,Button就会被禁用...直到我点击ListView中的一行!

我隔离了Refresh()RoutedCommand之间的问题(如果我将命令从Button中排除,则保持启用状态。)

你以前听过类似的话吗?你知道该怎么办吗?

提前谢谢。

3 个答案:

答案 0 :(得分:0)

我建议检查一下RefreshCommandExecuted,你会以某种方式影响Command的Enable状态。 问候。

答案 1 :(得分:0)

尝试将命令目标设置为其父级。
参考:http://msdn.microsoft.com/en-us/magazine/cc785480.aspx

答案 2 :(得分:0)

我放弃......我会选择RelayCommand解决方案......

感谢所有试图提供帮助的人!