を使用しておりRibbonWindow
、最初のセクションでは、ribbonBar ボタンとその他のコントロールを使用しており、2 番目のセクションではDockPanel
、その他のコントロールを表示/ロードしていました。
私は 2 つの userControls を持っています。1 つはコントロールを使用して詳細を表示するためのもので、もう 1 つはTextBox
DataGridDropDown
内のすべての既存のデータを表示するための userControl です。
これらの 2 つのコントロールは、条件に基づいてその DockPanel に配置する必要がありRibbonWindow
ます。
ここで、Grid 行のいずれかをクリックすると、選択した GridRow データを DisplayUserControl (userControl1) に入力し、userControl をその DockPanel にロード (2 番目の userControl を置き換える) する必要があります...
私がやったことは....
最初に をロードしUserControl2
、Dockpanel
グリッド
RibbonWindow
データを入力します。
ClickEvent
( GridList_MouseDoubleClick()
)を使用してグリッド行の値を取得しました。
そのメソッドで、One DelegateEvent を呼び出して、MainRibbonWindow で宣言されたメソッドを呼び出しました...
そのメソッドは、DockPanel
別の userControl を表示してロードすることになっています。コードは以下です。
以下のメソッドは MainRibbonWindow にあります...
public void fnDisplayEmployeeDetails(string str,DockPanel dockPannel)
{
// dockPannel is to be cleared...
this.Dispatcher.BeginInvoke((Action)delegate { dockPannel.Children.Clear(); }, null); //To Clear the Dock Panel
CtlAddEmployee frm2 = new CtlAddEmployee(str); //userControl1 and here str is Id of the Row...
dockPannel.Children.Add(frm2);
}
ここですべての作業が完了しましたが、DockPanel
残りは 2 番目の userControl のみです (つまり、Grid の表示のみ)。ドックパネルが firstUserControl に置き換えられていない
同じ値を別のウィンドウの Dockpanel に表示しようとすると、問題なく表示されます。なぜこの奇妙な行動が起こっているのかわかりません...
public void fnDisplayEmployeeDetails(string str,DockPanel docPannel)
{
this.Dispatcher.BeginInvoke((Action)delegate { docPannel.Children.Clear(); }, null); //To Clear the Dock Panel
CtlAddEmployee frm2 = new CtlAddEmployee(str);
MainWindow mnWindow = new MainWindow(); //another window Form...
mnWindow.MainWindowDock.Children.Add(frm2);
mnWindow.ShowDialog(); //here it is showing well....
}
別のユーザーコントロールにグリッド値の詳細を表示するにはどうすればよいですか?そのユーザーコントロールは同じドックパネルに入力する必要があります....