C# 使用显式UpdateSourceTrigger将ItemsControl绑定到集合

C# 使用显式UpdateSourceTrigger将ItemsControl绑定到集合,c#,wpf,C#,Wpf,我想做的事 我有一个页面,上面有许多字段。用户可以编辑字段,然后选择保存或取消。如果选择“保存”,则值应保留到数据源,如果取消,则字段应恢复为原始值 为此,我希望在绑定上使用UpdateSourceTrigger=Explicit 工作的部分… 现在,如果我有一个简单的文本框,例如: <TextBox x:Name="tb1" Text="{Binding Path=Model.Name, UpdateSourceTrigger=Explicit}" /> 我可以用以下方法还原该值

我想做的事

我有一个页面,上面有许多字段。用户可以编辑字段,然后选择保存或取消。如果选择“保存”,则值应保留到数据源,如果取消,则字段应恢复为原始值

为此,我希望在绑定上使用
UpdateSourceTrigger=Explicit

工作的部分…

现在,如果我有一个简单的文本框,例如:

<TextBox x:Name="tb1" Text="{Binding Path=Model.Name, UpdateSourceTrigger=Explicit}" />
我可以用以下方法还原该值:

BindingExpression bindingExpression = tb1.GetBindingExpression(TextBox.TextProperty);
bindingExpression.UpdateTarget();
到目前为止,一切都很好,我得到了确切的功能,我正在寻找

不起作用的部分…

我遇到的问题是,我的页面还包含一个
ItemsControl
,该控件的数量可变。此列表绑定到数据源上的
可观察集合

以下是XAML:

<ItemsControl x:Name="ic1" ItemsSource="{Binding Path=Model.Items, UpdateSourceTrigger=Explicit}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <TextBox Text="{Binding Path=SomeValue}" />
            </StackPanel>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

我做错了什么?我是否需要在
DataTemplate
中的
TextBox
上设置
UpdateSourceTrigger
,并以某种方式处理它?

我不确定,但不是
ItemsControl
正在处理
ICollectionView
,您尝试过吗???@XAMlMAX:不确定您的意思。我尝试了什么?从ItemsControl获取当前视图并刷新以重置。
<ItemsControl x:Name="ic1" ItemsSource="{Binding Path=Model.Items, UpdateSourceTrigger=Explicit}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <TextBox Text="{Binding Path=SomeValue}" />
            </StackPanel>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>
BindingExpression bindingExpression = ic1.GetBindingExpression(ItemsControl.ItemsSourceProperty);
bindingExpression.UpdateTarget();