usar tutoriales nacio guide estilos donde documentacion diseƱo como wpf user-controls window

tutoriales - Ventana de WPF que aloja usercontrol



tutoriales de wpf (2)

Tengo un usercontrol que utilizo para editar algunos objetos en mi aplicación.

Recientemente he llegado a una instancia en la que quiero abrir un nuevo cuadro de diálogo (ventana) que albergará este control de usuario.

¿Cómo instalo la nueva ventana y paso cualquier propiedad que deba establecerse desde la ventana al control de usuario?

Gracias por tu tiempo.


Necesitas:

  1. Crea algunas propiedades públicas en tu ventana de diálogo para pasar los valores
  2. Enlace su UserControl a esas propiedades públicas en su ventana de diálogo
  3. Muestra tu ventana de diálogo como diálogo cuando sea necesario
  4. (opcional) recupera valores de la ventana que están vinculados en dos direcciones a su control de usuario

Aquí hay un pseudocódigo que se parece notablemente a C # y XAML:

Cómo mostrar una ventana como un diálogo:

var myUserControlDialog d = new MyUserControlDialog(); d.NeededValueOne = "hurr"; d.NeededValueTwo = "durr"; d.ShowDialog();

y la fuente

public class MyUserControlDialog : Window { // you need to create these as DependencyProperties public string NeededValueOne {get;set;} public string NeededValueTwo {get;set;} }

y el 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>

harías lo mismo en tu UserControl como lo hiciste en tu ventana para crear propiedades públicas y luego enlazarlas dentro de la xaml.


Simplemente puede establecer el contenido de su nueva ventana a su control de usuario. En código, esto sería algo como esto:

... MyUserControl userControl = new MyUserControl(); //... set up bindings, etc (probably set up in user control xaml) ... Window newWindow = new Window(); newWindow.Content = userControl; newWindow.Show(); ...