如何删除代码中的绑定?在一种情况下,我使用 SetBinding 创建绑定。在另一种情况下,我通过 XAML 创建了一个 Binding。但似乎没有办法完全消除绑定。
有很多方法可以解决这个问题。
假设您有以下 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
控件的绑定。下面是一些。
DataContext
的 PeopleListView
设置为空。这将使它不使用父级DataContext
。 PeopleListView.ItemSource
属性设置为 null。这将删除现有的 XAML
绑定并将其替换为 null。根据 UWP 文档的“备注”部分关于 SetBinding 的注释:
调用所以我猜你必须在要绑定的源依赖属性上调用
SetBinding
方法并传入新的 Binding 对象不一定会删除现有的绑定。相反,您应该首先调用DependencyObject.ClearValue
方法,然后调用SetBinding
。
ClearValue
来清除所有现有的绑定。希望您只设置了一个绑定,这样您就不必恢复您仍然需要的任何其他绑定 🤞 .