我是一名 Java 开发人员,他从另一个团队继承了一个 Web 项目,该团队的唯一开发人员升级并退出。该项目的大部分内容是用 Spring、JSP 和 jQuery 编写的,但是有一个组件是 Silverlight XAP。
当然,该项目刚刚交给我,我们已经遇到了生产问题。我以前从来没有写过一点 C#,现在我正争先恐后地尝试尽快解决这个问题。
这是一个 Microsoft VS 2010 (Pro Edition) C# 解决方案项目,具有由 XAML 和 CS 文件组成的表示层。需要修复的组件是一个文件上传器,它允许用户从他们的机器中选择 1+ 个文件并将它们放在“队列”(列表框)中。然后,只需单击一个按钮,所有“排队”的文件都会上传到我们的服务器。
我需要能够判断列表框何时为空(当有 0 个文件排队/填充它时)。此功能在代码中由名为ListItemControl.xaml
和的 XAML/CS 文件对表示ListItemControl.xaml.cs
。
这是 CS 文件的开头:
namespace silv.Uploader
{
public partial class ListItemControl : UserControl
{
private UserFile UserFile { get { return (UserFile)this.DataContext; } }
public ListItemControl()
{
InitializeComponent();
...
将 Java 概念应用于它的 C# 表亲(正如我被告知的那样),这看起来像是我ListItemControl
的内部类,扩展了 Microsoft 内置类型的System.Windows.Controls.UserControl
. 此外,它有一个UserFile
属性(我假设它是另一种本土类型),表示需要上传的一个文件或一组文件。
所以首先,作为一个健全的检查:有人可以确认上面的假设吗?!?
首先,在 Java/Swing-land 中,您将实例化或子类化一个JList
(列表框)类型,该类型具有内置方法/模型来确定在任何给定时间填充它的项目数。
C#-land 中的 ListItemControl/UserControl 等价物是什么?
在这个 CS 文件中,我没有看到任何确定数据大小/长度/计数的方法。当 I F12 (Go to Definition) 时相同UserControl
。
本质上,我在这里问:如何查询此列表框组件以获取填充的项目数?在此先感谢您在正确方向上的任何推动...
编辑:下面是我认为负责初始化此列表框的 XAML 片段:
<ScrollViewer Grid.Row="1" x:Name="svFiles" IsEnabled="True" ScrollViewer.VerticalScrollBarVisibility="Visible" Margin="0,1,18,252">
<StackPanel x:Name="stkMain" Orientation="Vertical" VerticalAlignment="Stretch">
<ItemsControl x:Name="icFiles" KeyUp="ScrollViewer_KeyUp" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<local:ListItemControl ScrollViewer.VerticalScrollBarVisibility="Visible" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</ScrollViewer>