c# – 关于如何在MVVM中使用UpdateSourceTrigger = Explicit的一
发布时间:2020-12-15 04:11:26 所属栏目:百科 来源:网络整理
导读:我试图弄清楚如何使用UpdateSourceTrigger = Explicit. 我有以下表格: StackPanel x:Name="LayoutRoot" Margin="10" DataContext="{Binding ElementName=Window,Mode=OneWay}" DockPanel TextBlock Text="Proxy address:" VerticalAlignment="Center"/ Text
我试图弄清楚如何使用UpdateSourceTrigger = Explicit.
我有以下表格: <StackPanel x:Name="LayoutRoot" Margin="10" DataContext="{Binding ElementName=Window,Mode=OneWay}"> <DockPanel> <TextBlock Text="Proxy address:" VerticalAlignment="Center"/> <TextBox Text="{Binding User.PageAddress,Mode=TwoWay,UpdateSourceTrigger=Explicit}" Margin="28,0"/> </DockPanel> <DockPanel Margin="0,5,0"> <TextBlock Text="User name:" VerticalAlignment="Center"/> <TextBox Text="{Binding User.UserName,UpdateSourceTrigger=Explicit}" Margin="46,0"> <TextBlock Text="User password:" VerticalAlignment="Center"/> <TextBox Text="{Binding User.Password,UpdateSourceTrigger=Explicit}" Margin="26,0"/> </DockPanel> <StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0,0"> <Button Content="Ok" IsDefault="True" Width="70" Margin="0,15,0" Click="Ok_Click"/> <Button Content="Cancel" IsCancel="True" Width="70"/> </StackPanel> </StackPanel> 我应该调用什么方法来更新User属性? 我不想通过x:Name调用元素来调用绑定.如果我必须通过x:Name来解决这些元素,那么就我而言,我也可以完全没有约束力. 解决方法
您需要在后面的代码中调用
BindingExpression.UpdateSource以手动更新绑定.显式绑定与MVVM并不真正兼容,因为您需要直接引用视图对象来执行手动更新.
// itemNameTextBox is an instance of a TextBox BindingExpression be = itemNameTextBox.GetBindingExpression(TextBox.TextProperty); be.UpdateSource(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |