wpf RadioButton绑定到不同的属性

时间:2015-05-04 14:32:52

标签: wpf boolean

我有以下SQL表结构

  1. DeleteOwn 为位0或1
  2. 删除所有为位0或1
  3. NoDelete 为位0或1
  4. 在XAML中我有以下

                                <RadioButton  IsChecked="{Binding CurrentItem.Item[DeleteOwn]}" Content="Delete Own" HorizontalAlignment="Left" Margin="21,46,0,0" VerticalAlignment="Top"/>
                                <RadioButton  IsChecked="{Binding CurrentItem.Item[DeleteAll]}" Content="Delete All" HorizontalAlignment="Left" Margin="21,67,0,0" VerticalAlignment="Top"/>
                                <RadioButton  IsChecked="{Binding CurrentItem.Item[NoDelete]}" Content="No Delete" HorizontalAlignment="Left" Margin="21,88,0,0" VerticalAlignment="Top"/>
    

    以下是我的代码检索数据:

    Property MyItems As BindingListCollectionView
    Property CurrentItem As DataRowView
    Sub LoadData()
        MyItems = CollectionViewSource.GetDefaultView(GlobalApp.GetData("select * from mytable").DefaultView)
        NotifyProperty("MyItems")
    End Sub
    

    以及currentItem的关联方式

    Private Sub ChangeSelected(sender As Object, e As RoutedPropertyChangedEventArgs(Of Object))
               Dim MyTreeView As TreeView = DirectCast(sender, TreeView)
               CurrentItem = MyTreeView.SelectedItem
               NotifyProperty("CurrentItem")
    End Sub
    

    当加载到窗口中的数据值显示正确但在通过单击单选按钮更改值后,绑定将丢失,并且它向单选按钮显示不正确的值。 我怎样才能使它工作?

1 个答案:

答案 0 :(得分:0)

我不知道这是否有助于其他任何人,但我能够通过做两件事来解决它。

  • 在每个单选按钮中,我必须声明3个不同的组名(对我来说这是错误的但是为了让它工作我没有其他方式),例如

                        <RadioButton GroupName="a"/>
                        <RadioButton GroupName="b"/>
                        <RadioButton GroupName="c"/>
    
  • 每当其中一个单选按钮将状态更改为True时,其他单选按钮应设置为false,我希望此行为是开箱即用的

    (当单选按钮中的绑定不起作用时)

但我必须自己实现它,因为绑定不能正常工作,所以在我后面的代码中,当我的一个属性更改为True时,我将其他属性设置为False