Archives / 2009 / April
  • How to disable Copy and Paste for a control in WPF

    By default all the TextBox’s (an other controls) in WPF have a default ContextMenu that allows copy, paste and cut. You can disable this menu by setting this property as “{x:Null}”, but the keys associated with the menu options still work. In order to disable this commands we can use the DataObject class, which have handlers to attach any DepencencyObject in case on Copy or Paste:

    DataObject.AddPastingHandler(control, this.OnCancelCommand);

    DataObject.AddCopyingHandler(control, this.OnCancelCommand);

    Finally in the event handler we need to cancel the current command:

    private void OnCancelCommand(object sender, DataObjectEventArgs e)




    The CancelCommand method will cancel any ApplicationCommand.Copy, ApplicationCommand.Paste and ApplicationCommand.Cut sent over the control.


  • WPF Validation with Attributes and IDataErrorInfo interface in MVVM

    WPF provides validation infrastructure for binding scenarios through IDataErrorInfo interface. Basically you have to implement the Item[columnName] property putting the validation logic for each property in your Model (or ModelView) requiring validation. From XAML you need to set ValidatesOnDataErrors to true and decide when you want the binding invoke the validation logic (through UpdateSourceTrigger).