窗体上有一个XamDataGrid(绑定到一个ObservableCollection)和一个Button,Button用于保存在XamDataGrid中更改的数据。现在我想实现的功能是:初始时Button的Enable属性为False,当XamDataGrid中的数据发生改变时,Button的Enable属性值变为True。请问怎么实现呢?求大神指导!(最好有代码)
è¿éï¼æ¢ç¶æ¯WPFå»åï¼ä¸å»ºè®®ä½¿ç¨ButtonçEnableå±æ§å»æ§å¶ï¼å¯ä»¥ä½¿ç¨å½ä»¤ICommandçå¤çï¼æé®çç¶æä¹è½æ§å¶å°ï¼ä¹ä½¿å¾WPFç代ç è´¨éæ´å¥½ã
å½ä»¤ç³»ç»çåºæ¬å ç´
å½ä»¤(Command)ï¼å®ç°äºICommandæ¥å£çç±»ï¼ç»å¸¸ä½¿ç¨çæRoutedCommandç±»
å½ä»¤æº: æ¯å½ä»¤çåéè ï¼æ¯å®ç°äºICommandSourceæ¥å£çç±»ï¼å¤§é¨åçé¢çæ§ä»¶é½å®ç°äºè¿ä¸ªæ¥å£ï¼Button, MenuItem ççã
å½ä»¤ç®æ ï¼å½ä»¤çæ¥æ¶è ï¼å½ä»¤ç®æ æ¯è§çº¿äºIInputElementæ¥å£çç±»ã
å½ä»¤å ³èï¼è´è´£ä¸äºé»è¾ä¸å½ä»¤å ³èèµ·æ¥ï¼æ¯å¦å¤æå½ä»¤æ¯å¦å¯ä»¥æ§è¡ï¼ä»¥åæ§è¡å®æ¯ååä¸äºå¤çã
å½ä»¤æ¥å£çMSDNææ¡£ï¼http://msdn.microsoft.com/zh-cn/library/vstudio/system.windows.input.icommand(v=vs.100).aspx
ç½ä¸ä¹æå¾å¤ç¸å ³çä»ç»ï¼ç±äºç¯å¹ ï¼è¿éå°±ä¸å ·ä½è¯´æäºã
æè·¯ï¼ä½¿ç¨ICommandçCanExecute()æ¹æ³æ¥æ§å¶æé®çç¶æï¼å¦æéåæ¹åäºï¼æé®å°±å¯ç¨ï¼å¦åæé®ä¸å¯ç¨ã
è¦å¤ç好è¿ä¸ªé®é¢ï¼æ两个主è¦ç¥è¯ç¹ï¼
å½ä»¤ICommandç使ç¨
Listéåçæ¯è¾ã
ä¸é¢æ¯å½ä»¤å®ç°ä»£ç ï¼
è¿éç¨å°çRelayCommandæ¯WPFä¸é常ç¨çå·²ç»å®ç°çå½ä»¤ç±»ã
#region Commandä¸é¢æ¯XAML代ç ï¼
<Grid>å
¶ä»çä¸äºListæ¯è¾ç代ç å°±ä¸å
·ä½è´´åºæ¥äºï¼å¯ä»¥çä¸é件代ç ã
å¦æå ¶ä»çé®ï¼å¯ä»¥å¨åå¤è¯¢é®ã
我试过,开始可以。但是当点击Button提交保存回发之后,Button的Enable又变为True了。
追答你不是要让button的enable变为ture么?你还要在什么时刻变为false的么?