Не отображаются изображения в Canvas

Пробую создать приложение в котором изображения буду приближаться друг к другу. Сделал разметку, написал привязку. Сейчас встала проблема с тем, что в Canvas не отображается пара изображений и я не понимаю в чем может быть проблема. Список создается корректно. В него добавлены 2 изображения у которых в Source будет нужный BitmapImage. Для проверки вытащил Image в StackPanel, задал ресурс и изображения отобразились. Так же задавал высоту и ширину изображений, но ничего не помогло. В чем моя ошибка и чего я не понимаю? Разметка:

<UserControl x:Class="Test.Views.Test"
             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"
             xmlns:local="clr-namespace:Test"
             xmlns:view="clr-namespace:Test.Views"
             xmlns:vm="clr-namespace:Test.VM"
             xmlns:wpfToolKit="http://schemas.xceed.com/wpf/xaml/toolkit"
             mc:Ignorable="d"
             d:DesignHeight="800" d:DesignWidth="800">
    <UserControl.DataContext>
        <vm:TestVM />
    </UserControl.DataContext>

<StackPanel Orientation="Vertical">
    <Menu>
        <StackPanel Orientation="Horizontal">
            <Button x:Name="Reset" HorizontalAlignment="Center" VerticalAlignment="Center">
                <StackPanel HorizontalAlignment="Center">
                    <Image />
                    <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">Сброс</TextBlock>
                </StackPanel>
            </Button>
        </StackPanel>

        <StackPanel Orientation="Horizontal">
            <Button x:Name="Start" HorizontalAlignment="Center" VerticalAlignment="Center">
                <StackPanel HorizontalAlignment="Center">
                    <Image />
                    <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">Старт</TextBlock>
                </StackPanel>
            </Button>
        </StackPanel>

        <StackPanel Orientation="Horizontal">
            <Button x:Name="Speed" HorizontalAlignment="Center" VerticalAlignment="Center"
                    Content="Скорость" />
            <ListView />
        </StackPanel>

        <StackPanel Orientation="Horizontal">
            <Button x:Name="Image" HorizontalAlignment="Center" VerticalAlignment="Center"
                    Content="Изображения" />

        </StackPanel>
    </Menu>

    <ItemsControl ItemsSource="{Binding Images}">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <Canvas Height="300" />
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Image Source="{Binding Source}" />
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</StackPanel>

Код VM:

private readonly Dictionary<string, List<BitmapImage>> _dictionaryImages = new();

private ObservableCollection<string> _imageNames;

public ObservableCollection<string> ImageNames
{
    get => _imageNames;
    set
    {
        _imageNames = value;
        OnPropertyChanged(nameof(ImageNames));
    }
}

private ObservableCollection<Image> _images = new();

public ObservableCollection<Image> Images
{
    get => _images;
    set
    {
        _images = value;
        OnPropertyChanged(nameof(Images));
    }
}

private string _selectedImageName;

public string SelectedImageName
{
    get => _selectedImageName;
    set
    {
        if (_selectedImageName == value)
            return;

        _selectedImageName = value;
        OnPropertyChanged(nameof(SelectedImageName));

        if (!_dictionaryImages.TryGetValue(value, out var images))
           return;

        Images.Clear();
        foreach (var bitmapImage in images)
        {
            Images.Add(new Image
            {
                Source = bitmapImage
            });
            OnPropertyChanged(nameof(Images));
        }
    }
}

public TestVM()
{
    ImagesManager.GetImages(_dictionaryImages, "Test");
    ImageNames = new ObservableCollection<string>(_dictionaryImages.Keys);
}

public event PropertyChangedEventHandler? PropertyChanged;

protected virtual void OnPropertyChanged(string propertyName)
{
    PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}

Ответы (0 шт):