如何停止更新绑定属性?

9 wpf binding

我的应用程序中有一个对话框,弹出主屏幕(实际上是按照Billy Hollis的应用程序演示在页面上显示的用户控件),该对话框包含要编辑的主屏幕中的数据.主屏幕是只读的.

我遇到的问题是,当我更改对话框中的数据时,主屏幕上的数据也会更新.显然它们绑定到同一个对象,但有没有办法停止绑定更新,直到我在对话框中单击保存?

Tho*_*que 10

你可以使用BindingGroup:

...
<StackPanel Name="panel">
    <StackPanel.BindingGroup>
        <BindingGroup Name="bindingGroup"/>
    </StackPanel.BindingGroup>
    <TextBox Text="{Binding Foo}"/>
    <TextBox Text="{Binding Bar}"/>
    <Button Name="btnSubmit" Content="Submit" OnClick="btnSubmit_Click"/>
    <Button Name="btnCancel" Content="Cancel" OnClick="btnCancel_Click"/>
</StackPanel>
...
Run Code Online (Sandbox Code Playgroud)

代码背后:

private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
    panel.BindingGroup.BeginEdit();
}

private void btnSubmit_Click(object sender, RoutedEventArgs e)
{
    panel.BindingGroup.CommitEdit();
    panel.BindingGroup.BeginEdit();
}

private void btnCancel_Click(object sender, RoutedEventArgs e)
{
    panel.BindingGroup.CancelEdit();
    panel.BindingGroup.BeginEdit();
}
Run Code Online (Sandbox Code Playgroud)