0

我有一个绑定到我的视图模型中的属性的数据网格(在本例中为 C1 数据网格)。数据网格的 XAML 如下所示:

        <c1:C1DataGrid 
            AutoGenerateColumns="False"
            IsReadOnly="False"
            Margin="5" Width="auto"
            MinWidth="250"
            HorizontalAlignment="Stretch"
            VerticalAlignment="Stretch"
            Name="dgNotifAssign"
            CanUserAddRows="True" 
            ItemsSource="{Binding Path=notifCodeSubs.notification_configuration}"
            >


            <c1:C1DataGrid.Columns>
                <c1:DataGridTextColumn 
                    Binding="{Binding Path=user_id}" 
                    Header="Recipient" 
                    VerticalAlignment="Stretch"
                    SortMemberPath="user_id"  
                    >

在我的视图模型中,它绑定的属性如下所示:

Public Property notifCodeSubs As dsPeruseFM
    Get
        If _notifCode Is Nothing Then
            _notifCode = New dsPeruseFM
        End If
        Return _notifCode
    End Get
    Set(ByVal value As dsPeruseFM)
        MsgBox("If you can see this, success!")
    End Set
End Property

在代码隐藏中,我创建了一个视图模型的实例并将 xaml 的数据上下文设置为该实例,相当简单......

Dim vm As New ctrlAlertNotifyVM

也:

ctrlAlertNotifyXML.DataContext = vm

上面的配置编译和读取数据就好了。网格中填充了所有正确的数据等。当我尝试添加Mode=twoway到数据网格上的 ItemsSource 时,问题就出现了。此时VS2010吐出以下错误:

TwoWay 或 OneWayToSource 绑定无法在“PeruseFM.dsPeruseFM”类型的只读属性“notification_configuration”上工作。

我很确定我的所有属性都是读/写的。虽然此时的 set 命令只不过是一个消息框,但似乎我什至无法访问它。

所以问题是......以前有人遇到过这个问题吗?

更新,回答问题“notification_configuration 是什么样的?” 从六个字母变量:

Public Function codeChanged(Optional ByVal x As String = "")

    If _notifCode Is Nothing Then
        _notifCode = New dsPeruseFM
    End If
    taNotifSubs.fillNotifSubs(notifCode:=x, dataTable:=_notifCode.notification_configuration)
    Return _notifCode
End Function
4

1 回答 1

1

您已经向我们展示了它notifCodeSubs是读/写的,但是,这不是您绑定到的实际属性。

从这个角度来看,错误消息是不言自明的:

...只读属性'notification_configuration'...

因此,您不能TwoWay将该属性作为ItemsSource.

于 2012-08-02T14:39:18.267 回答