gpt4 book ai didi

wpf - Canvas ItemsControl 问题

转载 作者:行者123 更新时间:2023-12-03 10:13:35 26 4
gpt4 key购买 nike

我正在尝试实现此处显示的示例 [ WPF Canvas, how to add children dynamically with MVVM code behind ],但是当我启动我的程序时没有显示任何内容(即使将 Canvas 的 IsItemHost 设置为 True。

我的应用程序由实体类型组成:

public class Entity
{
public Entity(int x, int y, int width, int height)
{
X = x;
Y = y;
Width = width;
Height = height;
}

public int X { get; set; }
public int Y { get; set; }
public int Width { get; set; }
public int Height { get; set; }
}

实体存储在 EntitiesCollection 中:

public class EntitiesCollection : ObservableCollection<Entity>
{
public EntitiesCollection()
{
Add(new Entity(10, 10, 10, 10));
Add(new Entity(50, 20, 25, 25));
}
}

Wich 是 DrawingViewModel 类的成员:

public class DrawingViewModel
{
public DrawingViewModel()
{
Entities = new EntitiesCollection();
}

public EntitiesCollection Entities;
}

我的应用程序的 DataContext 在 MainWindow.xaml.cs 中设置:

public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.DataContext = new DrawingViewModel();
}
}

MainWindow.xaml 文件本身如下所示:

<Window x:Class="Test.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Test" Height="350" Width="525" Icon="Graphics/Icons/paint.png">
<Grid>
<ItemsControl ItemsSource="{Binding Entities}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas IsItemsHost="True"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style>
<Setter Property="Canvas.Left" Value="{Binding X}"/>
<Setter Property="Canvas.Top" Value="{Binding Y}"/>
</Style>
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border BorderBrush="Red" BorderThickness="1" Width="{Binding Width}" Height="{Binding Height}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</Window>

怎么了?谢谢。

最佳答案

Entities 必须是属性而不是字段。 (应该有相应的 binding errors 。)

关于wpf - Canvas ItemsControl 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12544810/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com