UWP:如何删除代码中的绑定?

问题描述 投票:0回答:2

如何删除代码中的绑定?在一种情况下,我使用 SetBinding 创建绑定。在另一种情况下,我通过 XAML 创建了一个 Binding。但似乎没有办法完全消除绑定。

c# xaml uwp
2个回答
3
投票

有很多方法可以解决这个问题。

假设您有以下 XAML

<Page>
  ...
  <Page.DataContext>
    <vm:MyPageViewModel x:Name="ViewModel" />
  </Page.DataContext>
  ...
  <Grid x:Name="rootLayout">
    <ListView x:name="PeopleListView" ItemSource="{Binding myItemsCollection}"/>
    <Textbox x:name="SomeTextBox" Text="{Binding myTextProp}"/>
  </Grid>
</Page>

现在,在 C# 中,您可以通过多种方法来删除

PeopleListView
控件的绑定。下面是一些。

  1. DataContext
    PeopleListView
    设置为空。这将使它不使用父级
    DataContext
  2. 另一种方法是将
    PeopleListView.ItemSource
    属性设置为 null。这将删除现有的
    XAML
    绑定并将其替换为 null。

0
投票

根据 UWP 文档的“备注”部分关于 SetBinding 的注释:

调用

SetBinding

 方法并传入新的 Binding 对象不一定会删除现有的绑定。相反,您应该首先调用 
DependencyObject.ClearValue
 方法,然后调用 
SetBinding

所以我猜你必须在要绑定的源依赖属性上调用

ClearValue

 来清除所有现有的绑定。希望您只设置了一个绑定,这样您就不必恢复您仍然需要的任何其他绑定 🤞 .

© www.soinside.com 2019 - 2024. All rights reserved.