如何删除代码中的绑定?在一个例子中,我使用SetBinding创建了一个Binding。在另一个例子中,我通过XAML创建了一个绑定。但似乎没有办法完全消除绑定。
mtb9vblg1#
有很多方法可以做到这一点。让我们假设您有下面的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.将PeopleListView的DataContext设置为空。这将使它不使用父DataContext。1.另一种方法是将PeopleListView.ItemSource属性设置为null。这将删除现有的XAML绑定并将其替换为null。
PeopleListView
DataContext
PeopleListView.ItemSource
XAML
vfh0ocws2#
根据UWP关于SetBinding的注解部分中的注解:调用SetBinding方法并传入一个新的Binding对象不一定会删除现有的绑定。相反,您应该首先调用DependencyObject.ClearValue方法,然后调用SetBinding。所以我猜您必须在target dependency属性上调用ClearValue来清除所有现有的绑定。希望您只设置了一个绑定,这样您就不必恢复任何其他仍然需要的绑定。
SetBinding
DependencyObject.ClearValue
2条答案
按热度按时间mtb9vblg1#
有很多方法可以做到这一点。
让我们假设您有下面的XAML
现在在C#中,有很多方法可以删除
PeopleListView
控件的绑定。下面是几个。1.将
PeopleListView
的DataContext
设置为空。这将使它不使用父DataContext
。1.另一种方法是将
PeopleListView.ItemSource
属性设置为null。这将删除现有的XAML
绑定并将其替换为null。vfh0ocws2#
根据UWP关于SetBinding的注解部分中的注解:
调用
SetBinding
方法并传入一个新的Binding对象不一定会删除现有的绑定。相反,您应该首先调用DependencyObject.ClearValue
方法,然后调用SetBinding
。所以我猜您必须在target dependency属性上调用ClearValue来清除所有现有的绑定。
希望您只设置了一个绑定,这样您就不必恢复任何其他仍然需要的绑定。