我有一个WPF窗口中的文本框绑定到我的ViewModel中的字符串特权。我也有一个绑定到命令的按钮。该按钮是窗口中的默认按钮,因此按下Enter键后,该命令将运行。该命令仅在文本框不为空时启用。如何强制更改文本框以在WPF中启用我的命令?
如果我在文本框中输入,然后按回车键,所有按预期工作。
但是,该文本框也是从条形码扫描器接收条形码的地方,该条形码扫描器向键盘缓冲区添加代码。条形码扫描器“键入”条形码并按下Enter键(这是工作)。
问题是,如果文本框为空,则条形码扫描仪会填充它,但由于该命令尚未可用,因此不会捕获Enter。如果文本框以其中的某些内容开始,那么扫描条形码时,所有内容都能正常工作。
我的绑定是:
Text="{Binding Barcode,UpdateSourceTrigger=PropertyChanged}"
视图模型的财产通过INotifyPropertyChanged
通知,我也尝试运行CommandManager.InvalidateRequerySuggested()
设法得到命令变得可用,但无济于事。
该命令是如何定义的? CanExecute()方法或动作的外观如何? – RoelF 2010-09-27 15:42:31
公共DelegateCommand AddAssetCommand { 得到 { 如果(_addAssetCommand == NULL)_addAssetCommand =新DelegateCommand( E => {AddAsset();}, C => {返回string.IsNullOrWhiteSpace(条码);}) ; return _addAssetCommand; } } – BlackWasp 2010-09-27 15:51:27
嗯。这并没有出现,但希望你能看到你所要求的那一点。 – BlackWasp 2010-09-27 15:51:47