【发布时间】:2014-10-20 13:58:57
【问题描述】:
在我的 WPF 应用程序(使用 MVVM)中,我有一个 CheckBox 和一个 TextBlock。当CheckBox 被选中时,来自TextBlock 的值将被保存。两个控件都绑定到我的ViewModel。下面是简化的 XAML:
<StackPanel>
<Label>Add to list</Label>
<CheckBox IsChecked="{Binding Path=AddItem}"></CheckBox>
<Label>Gross amount:</Label>
<TextBlock Text="{Binding Path=Amount}"></TextBlock>
</StackPanel>
现在我想在用户开始输入TextBlock 时检查CheckBox。我知道绑定可以做到这一点,但我已经绑定到我的ViewModel 中的一个属性。如何绑定到ViewModel 中的属性和其他控件?
【问题讨论】:
-
所以复选框应该既是一种保存(到哪里?)金额的方式,也是一种指示用户已经开始输入的方式?用户在开始输入时是否应该能够“保存”(那时复选框已经被选中)?也许您可以解释一下这应该如何为用户工作?
-
更准确地说:复选框绑定到 ViewModel 上的一个属性。细节有点复杂,但这不是主要问题。我已经处理好了。我遇到的问题是从 textBlock 到 ViewModel 以及从 textBlock 到 checkBox 的绑定。
-
让我强调一下,一旦您离开控件,文本输入控件绑定将被触发,而不是由每个字符的输入事件触发。所以你可能对每个字符的输入事件感兴趣,然后在那里设置你的布尔标志。
-
@Yury Schkatula:我将 UpdateSourceTrigger 设置为 PropertyChanged,所以应该没问题。