ビュー モデルのプロパティにバインドされたデータグリッド (この場合は 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
コード ビハインドでは、viewmodel のインスタンスを作成し、xaml のデータ コンテキストをそのインスタンスに設定します。かなり単純です...
Dim vm As New ctrlAlertNotifyVM
としても:
ctrlAlertNotifyXML.DataContext = vm
上記の構成は、データを正常にコンパイルして読み取ります。グリッドにはすべての正しいデータなどMode=twoway
が取り込まれます。データグリッドの ItemsSource に追加しようとすると問題が発生します。その時点で、VS2010 は次のエラーを吐き出します。
TwoWay または OneWayToSource バインディングは、タイプ「PeruseFM.dsPeruseFM」の読み取り専用プロパティ「notification_configuration」では機能しません。
すべてのプロパティが読み取り/書き込み可能であると確信しています。この時点での set コマンドはメッセージ ボックスにすぎませんが、そこにアクセスすることさえできないようです。
質問は... 誰かがこの問題に遭遇したことがありますか?
更新、質問「notification_configuration はどのように見えますか?」への回答 6 文字の変数から:
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