template data c# wpf xaml data-binding mvvm

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?