問題タブ [objectdataprovider]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - ObjectInstance を使用した XAML の ObjectDataProvider は、デバッグで ViewModel コンストラクターを呼び出しません。
以前の仕事ではこれを行っていましたが、そこでは完璧に機能していましたが、何らかの理由で今は機能しません。
ObjectDataProvider を使用して XAML で ViewModel クラスのインスタンスを作成し、それをバインディング用に参照できるようにしたいだけです。また、DataContext を Window で ViewModel に設定し、xmlns:local を取得しました。すべての ViewModel と同じ名前空間を持つ完全修飾名。
その後、ViewModelを使用しようとしました:
しかし、私の問題は、TimersHostViewModel パラメーターなしのコンストラクターでブレーク ポイントを設定すると、デバッグ時にヒットしないことです。そのため、ObjectDataProvider が正しく機能していないようです。ウィンドウは作成されますが。
App.xaml.cs と MainWindow.xaml.cs のブレーク ポイントがヒットし、InitializeComponent もヒットし、さらにシングルトン モデル クラスが作成されていることがわかります。しかし、私の TimersHostViewModel クラス コンストラクターが呼び出されない理由を理解することはできません。
私が覚えていることの 1 つは、私の仕事で次のような行を使用したことです。
ObjectInstance がなく、ObjectType しかないことがわかります。そのため、ObjectInstance を削除して代わりに ObjectType を設定しようとすると、次のエラーが発生します: オブジェクト参照がオブジェクトのインスタンスに設定されていません。 {x:Type local:TimersHostViewModel}"...何を与える?! あるインスタンスでは機能し、別のインスタンスでは機能しないのはなぜですか? 私はそれについて非常に混乱しています。
編集:わかりました、私は自分の質問に部分的に答えることができましたが、本当の質問はまだ残っています. そのため、ウィンドウの DataContext を削除し、ObjectDataProvider ObjectInstance を ObjectType に変更することで、ViewModel コンストラクターを呼び出すことができました。次に、Grid DataContext を設定して、TimersHostViewModel にバインドします。しかし、それでも ObjectDataProvider ObjectType: Object reference not set to an object のこのデザイン時/コンパイル時のエラーが残っています。
また、現在使用しているような特定の状況では機能するのに、他の状況では機能しない理由もまだわかりません。
完全なソース コードはこちら: http://timersxp.codeplex.com/SourceControl/latest#VS2013/TimersXP/Views/TimersHost.xaml
wpf - WPF ObjectDataProvider は汎用メソッドを呼び出すことができますか?
一般的に知られているObjectDataProvider
ように、そのような単純な非ジェネリック メソッドを呼び出すことができます
XAML:
分離コード:
ObjectDataProvider
ジェネリックメソッドを呼び出すことは可能ですか? そんな感じ:
c# - WPF デザイナー エラー 値を null にすることはできません。パラメータ名:パターン
パラメータ名: タイプ、名前など、null にすることはできません。これらの質問はすべて、実際のパラメーターが設定されていないことが原因です。私が知る限り、ObjectDataProvider の「パターン」パラメーターはありません。次のマークアップは、「値を null にすることはできません。パラメータ名: パターン」を生成し、青い波線の下線を付けます。デザイナーが例外をスローして読み込みに失敗することがありますが、リロード ボタンを押すとページが読み込まれます。コードとマークアップがコンパイルされ、期待どおりに実行されます。これは何が原因ですか?
クラスの一部です。これはカスタム コントロールではなく、名前の選択が不適切であることに注意してください。
これはページ上の唯一の ObjectDataProvider であり、4 番目の文字列パラメーターを削除すると、エラーはなくなります。さらに、それが呼び出すメソッドは 4 つの文字列を取り、文字列を返すので、その結果を出力テキスト ボックスにバインドできます。同様のメソッドと署名を使用して、別のページで同様の ObjectDataProvider を使用していますが、同じエラーが表示されます。ここで一体何が起こっているのですか?
Visual Studio Ultimate 2013、Windows 7 Professional、.net 4.5 を対象
c# - 現在の DataContext を ObjectDataProvider の ContructorParameter として渡すことは可能ですか?
DataTemplate のパラメーターとして DataContext を渡すと非常に便利です。
この DataTemplate を ListBox ItemTemplate で使用します。したがって、DataContext は ListBoxItem バインド オブジェクトになります (型は既知です)。
パラメータを DataTemplate からコンストラクタに渡す方法は他にあるでしょうか?
c# - System.Windows.Media.Colors としての WPF ComboBox
私のWPF ListView列でカラーコンボボックス(画像を参照)の動作を取得したい。
誰かがこれを始めるのを手伝ってくれますか? ListView バインディングには慣れていますが、これを実装する方法がわかりません。
編集:
提供されるタイプは列挙型でなければならないことを教えてくれます。
私が見つけたベストアンサー: XAML を使用して WPF で色を一覧表示するにはどうすればよいですか?
c# - ObjectDataProvider は派生クラスと連携できますか?
たとえば、いくつかの基本的なプロパティを実装する特定のコントロールの基本ビューモデルがあるとします。
また、そのコントロールで使用したい ResourceDictionary もあり、理想的には、含まれているスタイルの値を の実装にバインドしますControlVmBase
。ObjectDataProvider を介してこれを行うのは良い考えだと思いました。これはクリーンなソリューションのように見え、XAML で Intellisense をサポートしてくれるからです。
ただし、ODP は無意味な ObjectType をインスタンス化しようとするため、これは機能しません。これは抽象クラスであり、実装されたクラスに影響を与えないためです。そのような ODP を使用することは可能ですか、または派生クラスにバインドする別の可能性はありますか?