WPF用のデザイナーアプリケーションを作成しています。このアプリケーションでは、ユーザーがWPFウィンドウでコントロールをドロップし、 Source
およびPath
プロパティです。 ユーザーは新しいWPFウィンドウを終了した後、バインディング(XamlWriter-and-Bindings-Serialization)を含むXMLファイルにシリアル化できます。WPFのXML定義ファイルのロード後にバインディングがリフレッシュされない
ユーザーが新しいウィンドウを使用する場合、XMLファイルは新しいWPFウィンドウに読み込まれ、保存された定義によってコントロールとそのバインディングが復元されます。これをテストする
、我々はそのDataSource
にバインドされている、我々は(コードビハインドで)WPFウィンドウで作成したテストプロジェクトとDataSource
やコントロールなどDataTable
を行いました。 ViewModel
のDataSet
というタイプのプロパティは、DataTable
を含んでいます。我々はXMLとしてWPFウィンドウを保存すると 、コントロールとバインディングはそのようなXMLファイルに書き込まれます。別の「testwindow」が
<TextBox Text="{Binding Path=[0][Name], UpdateSourceTrigger=PropertyChanged}" Width="120" Canvas.Left="20" Canvas.Top="10" />
我々はDataSource
を作成し、XMLファイルをロードするように制御し、バインディングは再作成されますが、バインディングがリフレッシュされていないようです。 上記TextBox
は空です。
XmlDataProvider
でリフレッシュしようとしましたが、動作しません。
XmlDataProvider provider = new XmlDataProvider();
provider = (XmlDataProvider)this.DataContext;
provider.Refresh();
バインディングを更新するにはどうすればよいですか?
ありがとうございます!
"WPF用XML定義ファイル"とは、おそらくXAMLを意味します。次に、XamlReaderを使用して、 'XmlDataProvider'。[' XamlReader.Load'](https://msdn.microsoft.com/en-us/library/system.windows.markup(v = vs.110).aspx)はXAMLを解析し、そのXAMLのルートオブジェクトを返す – Clemens
Clemensありがとうございました!その間、私たちは、TestWindowで、DataContextがViewModelではなくDataTableを取得するときに正常に動作することを発見しました。 wModel DataTableが存在するDataSetプロパティ。 BindingがViewModelのDataSetからDataTableを取得できるように、Bindingを調整することはできますか? –