0
DataGridを含むUserControlを設計しています。データグリッドは、ItemsSource
にバインドするのに最善の努力をしても、行を表示していません。WPFユーザーコントロール内でDataGridのItemsSourceをバインドできません。
- ユーザーコントロールを含むウィンドウ:ここ
は、結合の基本的な流れです。
- ウィンドウviewmodelには、ユーザーコントロール用に設計されたviewmodelのインスタンスが含まれています。
- 私はUserControlのViewModelを依存関係プロパティを介してこのビューモデルにバインドします。
- DataGridはビューモデル内の観測可能なコレクションにバインドされますが、何も表示されません。
コード(XAMLとVB.Net):
すべてのウィンドウコントロールにバインドさウィンドウ表示モデル:
Public Class WindowVM
...
Public Property UserControlViewModel as New UserControlVM
End Class
ウィンドウXAML:
<local:MyUserControl ViewModel="{Binding UserControlViewModel, Mode=OneWay}"/>
ユーザーコントロールコード:
Public Shared ReadOnly ViewModelProperty As DependencyProperty = DependencyProperty.Register("ViewModel", GetType(UserControlVM), GetType(MyUserControl), New PropertyMetadata(Nothing))
...
Public Property ViewModel As UserControlVM
Get
Return CType(Me.GetValue(ViewModelProperty), UserControlVM)
End Get
Set(value As UserControlVM)
Me.SetValue(ViewModelProperty, value)
End Set
End Property
....
Public Class UserControlVM
Public Property RunItems As New ObservableCollection(Of RunVM)
End Class
ユーザーコントロールのXAML、DataGridのバインディング:
<DataGrid DataContext="{Binding ViewModel}"
ItemsSource="{Binding RunItems}" ...
これは、ステップの多くをようだが、私の知る限り、これはDataGrid
に結合するヘビへの正しいMVVM方法です。これまでは何もなかった。
ですか? – ViVi
はいvb.netは質問 – Tekito
を編集します。あなた自身で解決してもよかったです。 – ViVi