wpfユーザーコントロールxamlとcodebehindをシリアル化する必要があります。 XamlWriter.Save()
はこのような状況で何ができるのですか?私のsitutationは、カスタムメソッド、サブスクライブされたイベント(例:ボタンクリック)を含むusercontrolを持っています。私は(usercontrolを実行時に作成するために)私はそのイベントとメソッドを実行したいです。申し訳ありませんが私の英語はあまり良くありません。xamlとコードの後ろにwpfユーザーコントロールをシリアル化する方法
答えて
MEFを使用して、ユーザーコントロール用のプラグイン構造を構築できます。その場でユーザーコントロールを作成したいのですが、イベントハンドラはプロジェクトのどこか他の場所にハードコードされている必要があります。プラグイン構造を使用すると、プラグインを収集して再利用できます。イベントは何かコマンドによって処理することができます。たぶんシナリオを与えて、もっと詳しく説明することができます。
さらに、ISerializableは、メソッドやイベントではなく、フィールドのカスタムバイナリシリアル化の方法を提供します。関連する質問があります: What is the point of the ISerializable interface? ;一方、Webコントロールがビューステートをどのように保存するかのようないくつかのパターンを試すことができます。例えば 2の仮想メソッド:
public virtual byte[] SaveState(); // it saves the states for your custom control
public virtual void LoadState(byte[] state) // it restore your state back to the control.
カスタムコードは次のようにする必要があります:イベントのために
byte[] state = controlA.SaveState(); // this method saves its own state.
YourControl controlB = new YourControl();
controlB.LoadState(state); // this method load the save state from A to B itself.
、すべてのイベントハンドラの名前を持って、あなたはまた、状態にそのハンドラ名をシリアル化することができますし、同じ名前のコンテナから保存された名前でそれを見つける。私はこの方法を保存する経験はありません。
フィールド、イベント、メソッドなどの状態を保存してロードしたい場合は、おそらくシリアル化が適切な方法ではないと思います。
UserControlはISerializableインターフェイスを継承します。私はシリアル化し、任意のメンバー、イベント、メソッドを失うことなくusercontrolを逆シリアル化します。私の英語はあまり良くないので説明することができます –
私は私の答えを更新しました、それを確認してください。 – Howard
ありがとうすべての投稿 –
- 1. WPFのxamlのコードの後ろにconstメンバーをバインドする
- 2. コードの後ろのユーザーコントロール
- 3. wpfのコードの後ろにウィンドウアイコンを設定する方法は?
- 4. C#WPFシリアル化イベントなしのXAML
- 5. WPF - 背後にあるコードでXAML
- 6. 私のスタイリッシュなボタン(xaml)をコードの後ろから呼び出す方法
- 7. イメージを読む方法x:名前の後ろにあるコードでc#wpf
- 8. WPF BitmapImageシリアル化/逆シリアル化
- 9. Wpf:コードブレイクの後ろにコードを設定するスタイルトリガー
- 10. C#XAMLのコンテンツフィールドのシリアル化
- 11. フォームCのコードでWPF xamlコンテンツを取得する方法#
- 12. 複数のユーザーコントロールを含むwpfユーザーコントロールを作成する方法
- 13. WPFリファレンスMainWindowViewModelコードでのユーザーコントロール
- 14. VS 2012コード化されたUIテストとWPFユーザーコントロール
- 15. コードの背後にあるXAMLリソースカラーにバインドする方法
- 16. WPFのオブジェクトをXMLにシリアル化する
- 17. コードの後ろにAccordion.SelectionChangedをキャンセルする方法は?
- 18. コードの後ろにフォルダを作成する方法
- 19. wpfユーザーコントロールでWinFormsユーザーコントロールをホストする方法は?
- 20. WPFユーザーコントロール内からWPFユーザーコントロールをホストしているウィンドウフォームを閉じる方法
- 21. WPFコマンド - ユーザーコントロールで消費する方法
- 22. C#WPF親を埋めるように伸びる円を描き、コードの後ろに円を残す方法
- 23. XAMLユーザーコントロールをグリッドに配置する方法
- 24. C#WPF ContentControlをシリアル化するには?
- 25. WPFの正規表現コードの長さを割り当てる方法XAMLコード
- 26. ajaxの配列を後ろのコードに渡す方法
- 27. グリッドビューの後ろのコードcol値を取得する方法
- 28. マウスカーソルの後ろにあるWPFスネークゲーム
- 29. C#コードからjQueryの後ろにdataTableを渡す方法
- 30. array.lengthを逆シリアル化した後に取得する方法
なぜコードをシリアル化しますか? – gideon
あなたはこれをやりたい理由を説明できますか? Reflectorを使用してC#コードを取得することはできませんか? –
私は実行時にusercontrolを作成します。例えば;ユーザーコントロールにあるボタンは、ユーザーコントロールを非直列化するときにクリックイベント(購読)を受け取り、そのイベントを実行します。 –