c# - data - Encuadernación de propiedades de dependencia en UserControl
mvvm datatemplate (1)
Esos getters y setters nunca son llamados por el sistema de enlace (por lo tanto, nunca debe colocar código adicional allí). La propiedad probablemente esté configurada, pero a menos que haga algo con ella en la declaración del UserControl, no se mostrará nada. p.ej
<UserControl Name="control" ...>
<ItemsControl ItemsSource="{Binding ItemsList, ElementName=control}" />
</UserControl>
Mi solución está implementada en MVVM. La vista es una ventana que aloja un control de usuario. Creé una propiedad de dependencia para este userControl de la siguiente manera:
public static DependencyProperty ListProperty = DependencyProperty.Register(
"ItemsList", typeof(List<RequiredClass>), typeof(UsercontrolTest));
public List<RequiredClass> ItemsList
{
get { return (List<RequiredClass>)GetValue(ListProperty); }
set
{
SetValue(ListProperty, value);
}
}
Esta propiedad está vinculada a mi propiedad viewmodel (ListOfItems) en xaml:
<Window x:Class="TestProject.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Test="clr-namespace:TestProject"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Test:UserControlTest Grid.Row="0" ItemsList="{Binding Path=ListOfItems}" />
<Button Grid.Row="1" Content="AddItems" Click="Button_Click" />
</Grid>
</Window>
También he inicializado el contexto de datos de la ventana en código detrás del modelo de vista. El problema es que el enlace nunca parece suceder y la propiedad del conjunto nunca se llama para la propiedad de dependencia. ¿Me estoy perdiendo de algo?