【发布时间】:2018-06-12 14:02:47
【问题描述】:
我正在尝试在弹出窗口中设置我的文本框文本绑定,但我的视图模型的绑定属性设置器从未被调用。我有这样的视图设置:
<CommandBar>
<AppBarButton Icon="Edit" AllowFocusOnInteraction="true">
<Flyout>
<StackPanel>
<TextBlock Text="Enter Qty:" />
<TextBox Text="{Binding EditQty, Mode=TwoWay}" InputScope="Number" />
<Button Content="Update" Command="{Binding EditCommand}" />
</StackPanel>
</Flyout>
<CommandBar>
我的viewmodel代码也很简单:
public decimal _editQty;
public decimal EditQty
{
get => _editQty;
set => Set(ref _editQty, value);
}
我什至尝试将 UpdateSourceTrigger=Explicit 与绑定一起使用,然后在按钮的单击事件中,设置代码隐藏以调用
textBox.GetBindingExpression(TextBox.TextProperty).UpdateSource();
在调试过程中,我可以看到 textBox.Text 值已正确更改,但 UpdateSource() 仍未调用 setter。如果这很重要,我正在使用 Windows 10 Build 14393(周年纪念版)。
有没有办法做到这一点?在这一点上,我将不得不放弃这个想法并将文本框放在对话框中,即使将它放在弹出窗口中会更好的用户体验。
【问题讨论】:
-
启动时是否调用了getter?
-
浮出控件打开时调用 getter。