我有一个编辑器(文本框),我想根据单击的按钮将不同的文本绑定到它。
我可以在按钮上使用命令并通过命令参数传递我想编辑的字符串并更新绑定到文本框的字符串。这将起作用,但不会保存修改,因为文本(通过命令参数传递)和文本框的文本之间没有绑定。
我的问题是,我应该如何在不直接从视图模型访问文本框的情况下巧妙地实现此绑定?
编辑:我想要实现的目标可能很模糊。我试着澄清一下:
所以假设我有几个不同的按钮,如果我单击其中一个,它应该将一些字符串绑定到编辑器的文本框,我可以在其中修改它并稍后保存。
<Button Content="Edit query" Command="{Binding ShowQueryInEditorCommand}" CommandParameter="{Binding SomeSqlStringToBeEdited}"/>
<Button Content="Edit query" Command="{Binding ShowQueryInEditorCommand}" CommandParameter="{Binding SomeOtherSqlStringToBeEdited}"/>
这是命令将执行的内容:
public void ShowQueryInEditor(object o)
{
string SqlStatementParam = o as string;
if (SqlStatementParam != null)
SQLStatement = SqlStatementParam;
}
和编辑器 TextBox 本身:
<TextBox Text="{Binding SQLStatement}">
如您所见,这是非常基本的,因为它只是设置 SQLStatement 字符串,但它们之间没有绑定,因此它无法将修改反映回 SomeSqlStringToBeEdited/SomeOtherSqlStringToBeEdited。这就是我想要实现的,在单击按钮时以某种方式将该字符串绑定到文本框。