私はいくつかのデータを持つ画面を持っています。画面内には、2つのカスタム コントロールがあります(左側と右側)。私がする必要がどのようなLightswitch、Silverlightおよびカスタムコントロールの操作
は次のとおりです。最初のカスタムコントロールのいくつかのコントロールに
バインドデータベースからいくつかのデータ。 (リスト、コンボボックスなどを記入し、問題はそれほど問題ではない)
ユーザーは、リスト内の項目を選択してボタンを押して、2番目のCustomControlを表示できるようにします。選択に基づいてDBからデータを要求し、チャートを動的に作成して表示します。
私はグラフを作成し、コントロールを構築する方法を知っています。しかし、データ にコードでアクセスして、最初のCustomControl内から別のCustomControlにアクセスするにはどうすればよいですか?
編集:
物事は私が見つけました。画面から
アクセス制御は
this.FindControl("yourControl");
コントロールに何かを実行します。
this.FindControl("yourControl").ControlAvailable += ((o,e) => { YourControlType myControl = e.Control as YourControlType; });
Access画面データ
IContentItem dataContext = this.DataContext as IContentItem; IScreenObject screen = dataContext.Screen; IScreenProperty prop = screen.Details.Properties["yourProperty"]; VisualCollection<yourProperty> items = prop.Value as VisualCollection<yourProperty>;
は多分これが誰かを助ける
Application.Current.Details.Dispatcher.BeginInvoke(() => Application.Current.ShowGraphScreen(reportItem.BlockID));
新しい画面を表示します。
+1画面データにアクセスする方法に関する小さな宝石用です。カスタムコントロールは別のライブラリになければならないので、クライアントアプリケーションの生成された 'Application.common'への参照を追加し、サンプルと組み合わせると大きな助けになりました。 –
このリンクは役に立ちますか? [カスタムコントロールのバインド](http://social.msdn.microsoft.com/Forums/en/lsextensibility/thread/394d7968-5210-441a-bf29-3da7001af07d) –