在我的“视图”中,我有一个绑定到ViewModel的字符串属性的TextBox。
我想向View添加一个提交按钮,因此只有在按下此按钮时才会更新基础ViewModels字符串属性。
为了使事情进一步复杂化,此TextBox
位于DataGrid
内。我认为将绑定UpdateSourceTrigger
设置为Explicit
可能是答案,但我看不出这是如何工作的。
任何替代解决方案都是将ViewModels String
切换为TextBox
- 这意味着我会手动填充数据。
答案 0 :(得分:0)
您可以将按钮绑定到命令并将文本框的文本作为参数传递。
<TextBox x:Name="textBox"></TextBox>
<Button Content="Button" Command="{Binding MyCommand}" CommandParameter="{Binding ElementName=textBox, Path=Text}"/>
在ViewModel中:
public ICommand MyCommand
{
get
{
return new RelayCommand((textBoxText) =>
{
if (...)
{
//somelogic;
}
});
}
}
答案 1 :(得分:-1)
在Button中,您可以通过DataContext访问该行
private void ButtonRevise_Click(object sender, RoutedEventArgs e)
{
Button btn = (Button)sender;
GabeLib.SearchItem srchItem = (GabeLib.SearchItem)btn.DataContext;