私はボタンをクリックしてusercontrolを閉じようとしています。 usercontrolは、メインウィンドウのグリッド内にあります。メインウィンドウのグリッドでUserControlを閉じる
これは私がそれを開いて動作する方法です。
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
UsLogin _UsLogin = new UsLogin();
OpenUserControl(_UsLogin);
}
private void OpenUserControl(UsLogin _UsLogin)
{
grdVensters.Children.Add(_UsLogin);
}
}
ここでusercontrolにはログインを確認するボタンがあります。 (コードはまだありませんが、これはクラスでどのように見せたいのですか) このボタンをgrdVenstersでこのユーザーコントロールを閉じてメインウィンドウを準備しておきます。
私のusercontrolでgrdVenstersにアクセスできないようです。私はリンクを作ることができますか?
試してみました。Close current UserControl でも、私の望むものではありませんが、最善の答えはMainWindowを閉じます。
これは私が必要としているように見えますが、私の場合はうまくいかないようです。 Causing a UserControl to remove itself (WPF)
ありがとうございます!
の背後にあるコードは、表示/非表示やグリッドの子コレクションから削除を意味する可能性があります。 UCのVisibilityプロパティをUC側で折りたたむように設定するのが最善です。そうしないと、ツリーを横断してグリッドにアクセスできます。 'VisualTreeHelper'クラスがこれを助けます。 – AnjumSKhan
私は問題を完全に受け取りませんが、マットを理解し、同意します。他の解決方法は、アクションをコントロールに渡すことです。コントロール内のボタンをクリックすると、アクションが呼び出されます。コンストラクタ内でアクションを渡すことも、プロパティを介してアクションを公開することもできます。アクションの実装(メインウィンドウクラスに存在)で、 'grdVensters.Children.Remove(_UsLogin);'を呼び出します。これは、汗をかくために行うべきではありません。正直言って、あなたはWPFを使っているのでMVVMに行くでしょう。 –