Я пытаюсь вызвать метод из UserControl из другого UserControl. Я не могу отследить UserControl, из которого я пытаюсь вызвать метод, чтобы вызвать метод.
Я пытаюсь вызвать следующий метод, который находится в AddDeal.xaml.cs
public void loadDealProducts()
{
InfoBox.Information("loadDealProducts called.", "testing");
}
Я отслеживаю AddDeal UserControl и пытаюсь вызвать метод loadDealProducts () в файле AddDealProducts.xaml.cs, используя следующий метод
Window window = null;
if (sender is Window)
window = (Window)sender;
if (window == null)
window = Window.GetWindow(sender);
return window;
(window as AddDeal).loadDealProducts();
Но окно возвращает ноль, поэтому я не могу вызвать метод loadDealProducts.
Вместо получения окна с помощью GetWindow, есть ли способ получить UserControl? Я пробовал Window.GetUserControl и UserControl.GetUserControl, но такого метода не существует.
Отправитель - это объект DependencyObject из AddDeal.xaml.cs, который я получаю, когда нажимаю кнопку в AddDeal.xaml следующим образом:
<Button Click="BtnAddProducts" CommandParameter="{Binding Path=ProductID}">Add Product</Button>
, который вызывает следующее:
private void BtnAddProducts(object sender, RoutedEventArgs e)
{
var button = (Button)sender as DependencyObject;
Window AddProductsDialog = new Window {
Title = "Add Products to Deal",
Content = new AddDealProduct(button, productID, false, 0)
};
AddProductsDialog.ShowDialog();
}
Как видите, я отправляю button
, который является объектом DependencyObject на AddDeal.xaml.cs / xaml
Когда он открывает новое окно AddDealProduct, у него есть AddDealProduct.xaml (файл пользовательского интерфейса) и его файл с выделенным кодом .xaml.cs. В этом файле я хочу вызвать функцию из вызывающего UserControl (AddDeal).