我是 XAML/Wpf 表单的新手,所以这个项目可能有点超出我的能力。我想制作一个调度程序,它基本上将一堆“工作”添加到表单中,每个都有自己的能力,如点击事件等,但在大多数情况下,它们是具有背景和设定大小的标签。
这就像我在 Winforms 中所做的(删除数据)一样,但添加到表单中非常慢。我希望 xaml 的某种数据绑定和用户控件能帮助我。
会有大量这样的工作,理想情况下我认为每一行可能是它自己的用户控件或每个部分(这里标记为装配单元)。
我有一些代码可以将作业放置到窗口上,但是没有用户控件,也没有行或节标签。在 xaml 中看起来像这样:
<Window.Resources>
<DataTemplate x:Key="Job">
<Label Content="{Binding}" Height ="100" Width="100" BorderThickness="1" BorderBrush="Black"/>
</DataTemplate>
<DataTemplate x:Key="wrkCenterPanel">
<ItemsControl ItemsSource="{Binding}" ItemTemplate="{DynamicResource job}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical" Width="Auto" Height="Auto" >
</StackPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</DataTemplate>
</Window.Resources>
...
<Label Grid.Row="0" Grid.Column="0" Content="Production Scheduler" Width="Auto" Height="Auto" FontSize="40" FontWeight="Bold" HorizontalAlignment="Center" />
<ScrollViewer Grid.Row="1" Grid.Column="0" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto">
<ItemsControl x:Name="sched" ItemTemplate="{DynamicResource wrkCenterPanel}" />
</ScrollViewer>
在代码中,我只有一个 List(Of List(Of String)) 并且我将每一行添加为一个新的字符串列表,然后将其绑定到 sched。这甚至是正确的前进方向吗?任何帮助都将不胜感激。