У меня есть usercontrol, который я использую для редактирования некоторых объектов в моем приложении.
Я недавно приехал в экземпляр, где я хочу открыться новое диалоговое окно (окно), которое разместит этот usercontrol.
Как я инстанцирую нового окна и передаю какие-либо свойства, которые должны быть установлены от окна до usercontrol?
Спасибо за внимание.
Вам необходимо:
Вот некоторый псевдокод, который замечательно похож на C # и XAML:
Как показать окно как диалоговое окно:
var myUserControlDialog d = new MyUserControlDialog();
d.NeededValueOne = "hurr";
d.NeededValueTwo = "durr";
d.ShowDialog();
и source
public class MyUserControlDialog : Window
{
// you need to create these as DependencyProperties
public string NeededValueOne {get;set;}
public string NeededValueTwo {get;set;}
}
и xaml
<Window x:Class="MyUserControlDialog" xmlns:user="MyAssembly.UserControls">
<!-- ... -->
<user:MyUserControl
NeededValueOne="{Binding NeededValueOne, RelativeSource={RelativeSource FindAncestor, AncestorType=Window}}"
NeededValueTwo="{Binding NeededValueTwo, RelativeSource={RelativeSource FindAncestor, AncestorType=Window}}"
</Window>
вы должны сделать в своем UserControl то же самое, что и в своем окне, чтобы создать общедоступные свойства, а затем привязать их к xaml.
Вы можете просто установить содержание вашего нового окна в свой пользовательский элемент управления. В коде это будет примерно так:
...
MyUserControl userControl = new MyUserControl();
//... set up bindings, etc (probably set up in user control xaml) ...
Window newWindow = new Window();
newWindow.Content = userControl;
newWindow.Show();
...