我有一个自定义组件,它基本上是一个带有附加按钮的文本框。该按钮应该对文本框执行操作;例如,单击按钮可以用一些随机字符串填充文本框。
文本字段绑定到 ViewModel 中的属性。它基本上看起来像这样:
设置对组件通用的命令的最佳方法是什么?
到目前为止,我所做的是RelayCommand
在我的 ViewModel 中有一个需要参数的通用。每个按钮都将其命令设置为该单个命令,我使用该CommandParameter
属性添加一些关于我实际谈论的文本字段组件的信息。然后 ViewModel 使用该信息找出正确的属性并更改其值(通过绑定更新文本框)。
虽然这很好用,但我不喜欢我必须手动插入有关相关文本框或上下文的信息。理想情况下,我希望在已经知道它正在谈论哪个文本框或绑定属性的上下文范围内执行命令。有没有办法做到这一点?
我遇到的另一个问题是我想将按钮操作绑定到一个键盘命令。所以当我关注一个文本框并按下一个快捷键时,我希望它表现得好像我点击了正确的按钮,即执行命令并传递正确的上下文信息。我的替代方法是将其放入代码隐藏中,基本上从当前焦点中提取命令参数,但我更喜欢更清洁的解决方案。
有什么好方法可以使这个工作与 MVVM 一起工作吗?