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

roejwanj  于 2023-09-28  发布在  其他
关注(0)|答案(2)|浏览(106)

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

mtb9vblg

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.将PeopleListViewDataContext设置为空。这将使它不使用父DataContext
1.另一种方法是将PeopleListView.ItemSource属性设置为null。这将删除现有的XAML绑定并将其替换为null。

vfh0ocws

vfh0ocws2#

根据UWP关于SetBinding的注解部分中的注解:
调用SetBinding方法并传入一个新的Binding对象不一定会删除现有的绑定。相反,您应该首先调用DependencyObject.ClearValue方法,然后调用SetBinding
所以我猜您必须在target dependency属性上调用ClearValue来清除所有现有的绑定。
希望您只设置了一个绑定,这样您就不必恢复任何其他仍然需要的绑定。

相关问题