wpf binding user-controls controls

Control de usuario de WPF vincular datos a propiedad de control de usuario



binding user-controls (1)

Puedes probar el enlace de elementos dentro del control del usuario. Solo dale un nombre a UserControl y vincula la propiedad:

<UserControl x:Class="controlmaker.checkButton" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" mc:Ignorable="d" d:DesignHeight="114" d:DesignWidth="221" x:Name="MyUserControl"> <Grid Background="Aqua" > <CheckBox Content="CheckBox" Height="16" HorizontalAlignment="Left" Margin="58,24,0,0" Name="checkBox1" VerticalAlignment="Top" /> <Button Content="{Binding Path=buttText, ElementName=MyUserControl}" Height="23" HorizontalAlignment="Left" Margin="58,57,0,0" Name="button1" VerticalAlignment="Top" Width="75" /> </Grid> </UserControl>

Y luego puede enlazar o colocar texto estático desde el lugar de uso de control del usuario

<my:checkButton buttText="aka" />

o

<my:checkButton buttText="{Binding SomeProperty}" />

Tengo control de usuario:

xaml

<UserControl x:Class="controlmaker.checkButton" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" mc:Ignorable="d" d:DesignHeight="114" d:DesignWidth="221"> <Grid Background="Aqua" > <CheckBox Content="CheckBox" Height="16" HorizontalAlignment="Left" Margin="58,24,0,0" Name="checkBox1" VerticalAlignment="Top" /> <Button Content="{Binding buttText}" Height="23" HorizontalAlignment="Left" Margin="58,57,0,0" Name="button1" VerticalAlignment="Top" Width="75" /> </Grid> </UserControl>

código detrás

public partial class checkButton : UserControl { public checkButton() { InitializeComponent(); } public static readonly DependencyProperty buttTextProperty = DependencyProperty.Register("buttText", typeof(String), typeof(checkButton), new FrameworkPropertyMetadata(string.Empty)); public String buttText { get { return GetValue(buttTextProperty).ToString(); } set { SetValue(buttTextProperty, value); } } }

y la ventana principal xaml

<Window x:Class="controlmaker.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525" xmlns:my="clr-namespace:controlmaker"> <Grid> <my:checkButton buttText="aka" HorizontalAlignment="Left" Margin="145,115,0,0" x:Name="checkButton1" VerticalAlignment="Top" Height="133" Width="250" /> </Grid> </Window>

Quiero enlazar la propiedad de control de usuario en la ventana xaml y enlazarla en el control de usuario para abotonar la propiedad de contenido. ¿Cómo hacerlo?