У меня есть пользовательский элемент управления, содержащий несколько кнопок и ListView.
Я хочу, чтобы у моего пользовательского элемента управления было свойство ItemsSource
, которое напрямую связывается с источником элементов списков.
MyControl.xaml.cs
public partial class MyControl : UserControl
{
public static DependencyProperty ItemsSourceProperty =
ListView.ItemsSourceProperty.AddOwner(typeof(AddFilesControl));
public ObservableCollection<DocumentFile> ItemsSource
{
get { return (ObservableCollection<DocumentFile>)GetValue(ItemsSourceProperty); }
set { SetValue(ItemsSourceProperty, value); }
}
}
MyControl.xaml
<UserControl x:Class="[...].MyControls.MyControl"
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">
<Grid>
<ListView>
<ListView.ItemTemplate>
[...]
</ListView.ItemTemplate>
</ListView>
</Grid>
</UserControl>
MyViewModel.cs (устанавливается как источник данных MyWindow
содержит только MyControl
)
public class MyViewModel : INotifyPropertyChanged
{
public ObservableCollection<DocumentFile> DefaultList { get; set; }
}
При отладке элементы не отображаются, но в ViewModel есть элементы.
Привязка кажется правильной.
<custom:MyControl ItemsSource="{Binding DefaultList}" />
Что здесь не так?