我有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
中排除,则保持启用状态。)
你以前听过类似的话吗?你知道该怎么办吗?
提前谢谢。
答案 0 :(得分:0)
我建议检查一下RefreshCommandExecuted,你会以某种方式影响Command的Enable状态。 问候。
答案 1 :(得分:0)
尝试将命令目标设置为其父级。
参考:http://msdn.microsoft.com/en-us/magazine/cc785480.aspx
答案 2 :(得分:0)
我放弃......我会选择RelayCommand
解决方案......
感谢所有试图提供帮助的人!