<Button> >> <Button.Resources> >> <res:NewPaperMultiConverter x:Key="NPMC"/> >> </Button.Resources> >> <Button.CommandParameter> >> <MultiBinding Converter="{StaticResource NPMC}"> >> <MultiBinding.Bindings> >> <Binding ElementName="txtWidth" Path="Text" /> >> <Binding ElementName="txtHeight" Path="Text" /> >> <Binding ElementName="txtName" Path="Text" /> >> </MultiBinding.Bindings> >> </MultiBinding> >> </Button.CommandParameter> >>OK</Button>And, of course, the order of the bindings is critical. I'm normally using a standard MVVM design but in this case the three parameters don't have a natural mapping to the VM - they are just used to create an object (which is in the VM). I think I'm just going to stick with the pattern and extend the VM to enable the designers to bind the textboxes directly to it - at least they are familiar with that.
public class NewPaperParameters { public double Width { get; set; } public double Height { get; set; } public string Name { get; set; } }I guess it would be possible to hold an instance of this as a StaticResource and bind the TextBoxes to it and then bind this instance to the Button.CommandParameter. But that would require just as much nous on the part of the designers (and I'm not sure it's doable anyway). I think I'm going to stick with modifying the VM but I'm not happy....