问题列表 - 第7763页

计算ListBox中可见项的数量

我有一个叫做Book的课;

class Book
{
    public string Name { get; set; }
    public string Author { get; set; }
    public int PagesCount { get; set; }
    public int Category { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

ListBox显示Books列表,并且ItemTemplate已被修改,以便直观地表示Book.文本显示了书的名称,作者和页数.然而,类别由某种颜色表示(例如,历史是蓝色,浪漫是红色等).现在,文本具有OuterGlowBitmap效果和从Category(int)到适当Color的值转换器.所有内容都绑定在DataTemplate for ListBoxItem中.从技术上讲,一切正常.

然而,问题在于性能.似乎outerGlow位图效果在处理器上很重,所以当我有大约500本书的列表时,从数据库中检索数据需要大约500ms,但实际将项目加载到ListBox大约需要10秒.即使加载完成,滚动也非常滞后.我试图将VirtualizingStackPanel.IsVirtualizing设置为True,但无济于事.(在任何给定时间,数据库中可以存在的最大书籍数量约为30000.)

但是,即使列表框中有超过100个项目,人类思维也无法快速处理,因此我无意加载并向用户列出所有搜索到的书籍.这就是为什么我创建了一个包装器导航类BookNavigator,它实际上将列表框绑定到它的ObservableCollection对象.所有书籍都被加载到这个BookNavigator中,但它们中只有X个显示在列表框中(通过将它们添加到observableCollection中).

这个问题是我希望显示的书籍数量足够小,以便列表框不显示滚动条,所以我可以实现我自己的滚动方法(第一个,上一个,下一个,最后一个,或者只是我自己的滚动条,不没问题.

如何计算要显示的项目数以便不显示滚动条?

弹出的两个问题: - 调整应用程序大小可以更改列表框的大小 - 并非所有列表框项目都具有相同的高度(取决于作者的数量).

有没有办法实现我想做的事情?


编辑(作为对Martin Harris的回复)

代码Martin Harris建议的问题是foreach循环使用FrameworkElement,但是listbox填充了Book类型的对象,它不从FrameworkElement继承,也没有任何其他计算高度的方法.ListBoxItem的根元素是一个网格,所以也许可以检索这个网格,但我不知道该怎么做?

是否有任何方法可以获得为表示列表框项而创建的实际UI元素?


编辑

我发现这个Q/A似乎是我需要的...... ItemContainerGenerator

wpf scroll listbox visible

2
推荐指数
1
解决办法
8748
查看次数

剪切HTML字符串而不破坏HTML标记

如何编写一个函数,可以将带有HTML标记的字符串剪切为N长度的字符串,而不会在执行此操作时破坏HTML标记.

返回的字符串不需要长度为N个字符.它可以在N长字符串边缘的标签之前或之后剪切它.

Visit <a href="www.htz.hr">Croatia</a> this summer.
Run Code Online (Sandbox Code Playgroud)

CutIt(9) 应该回来

Visit
Run Code Online (Sandbox Code Playgroud)

要么

Visit <a href="www.htz.hr">Croatia</a>
Run Code Online (Sandbox Code Playgroud)

html string

8
推荐指数
2
解决办法
6333
查看次数

如何在占位符中的动态生成标签之间创建换行符?

这是代码隐藏在文件Page_Load事件后面的代码:

        LinkButton linkButton = new LinkButton();
        linkButton.ID = "LinkButtonDynamicInPlaceHolder1Id" + i;
        linkButton.ForeColor = Color.Blue;
        linkButton.Font.Bold = true;
        linkButton.Font.Size = 14;
        linkButton.Font.Underline = false;
        linkButton.Text = itemList[i].ItemTitle.InnerText;
        linkButton.Click += new EventHandler(LinkButton_Click);
        linkButton.Attributes.Add("LinkUrl",itemList[i].ItemLink.InnerText);
        PlaceHolder1.Controls.Add(linkButton); 
        Label label = new Label();
        label.ID = "LabelDynamicInPlaceHolder1Id" + i;
        label.ForeColor = Color.DarkGray;
        label.Text = itemList[i].ItemDescription.InnerText;
        PlaceHolder1.Controls.Add(label);
Run Code Online (Sandbox Code Playgroud)

我想在生成的每个控件之间换行.

asp.net dynamic button line-breaks placeholder

16
推荐指数
1
解决办法
4万
查看次数

Winforms MenuStrip带下划线的热键字母

通常,MenuStrip上的热键字母带有下划线.(&File,&Open等)在项目中,我正在设计下划线,但不是在运行时.我找不到控制它的属性.有人知道吗?

.net hotkeys menustrip underline winforms

6
推荐指数
3
解决办法
5963
查看次数

Jquery,拖放并保存到mysql数据库?

我一直在网上搜索,我只能找到inettuts-with-cookies,它教会了如何使用Jquery执行拖放然后保存在cookie中.任何人都可以告诉我如何保存到数据库(PHP和MySQL)?我非常需要..

编辑:

首先,我不是php初学者,而是AJAX初学者.这些教程仅适用于1列.有没有人拖放并保存到2或3列的数据库?请>>>

php mysql jquery drag-and-drop

4
推荐指数
1
解决办法
5万
查看次数

捕获隐藏或最小化的窗口

我遵循了这个教程(这里有更多的内容,因为在我的代码中我通过鼠标点击获得一个窗口),用于将窗口作为位图抓取,然后在不同的窗口中渲染该位图.

我的问题:

当窗口最小化或隐藏(SW_HIDE)时,我的屏幕捕获不起作用,因此可以在窗口最小化或隐藏时捕获它吗?

winapi screen-capture

8
推荐指数
1
解决办法
2万
查看次数

使用另一个数组中的索引值创建一个数组

好的,这就是我想做的.我有一个阵列.我想要做的是从第一个索引值的另一个数组.从下面我想要创建和数组:

   Array ( 
    [identifier] => ID 
    [label] => HouseNum 
    [items] => Array ( 
                      [0] => Array ( 
                                    [ID] => 1 
                                    [HouseNum] => 17  
                                    [AptNum] => 
                                    [Street] => birch glen dr 
                                    [City] => Clifton Park 
                                    [State] => NY [Zip5] =>   
                                    [EID] => E083223 
                                    [RequestDate] => 02/05/09 
                                    [Status] => In-Qeue 
                                    [DateCompleted] => 
                                    [CompletedBy] =>  
                                    [ContactName] => Suzy Q 
                                    [ContactNumber] => 555-867-5309 
                                    [ContactTime] => 9-9 )
                       )
    );
Run Code Online (Sandbox Code Playgroud)

这将最终看起来像这样:

Array(
      [0] => [ID] 
      [1] => [HouseNum] 
      [2] => [AptNum]
      [3] => [Street] 
      [4] …
Run Code Online (Sandbox Code Playgroud)

php arrays

2
推荐指数
1
解决办法
984
查看次数

VB 6应用程序的国际化

有没有人国际化VB 6应用程序?您可以提供任何有用的资源或提示/技巧?

vb6 internationalization

3
推荐指数
1
解决办法
1865
查看次数

如何在Objective-C/iOS中代表钱?

我正在开发一款iPhone应用程序并且希望代表金额($)金额.我不能使用float因为它们会引入一定量的舍入错误.我可以用什么?

我正在考虑定义我自己的Money类,并在内部存储美元和便士作为NSInteger.

@interface Money : NSObject {
    //$10.25 is stored as dollas=10 and pennies=25
    NSInteger dollars;
    NSInteger pennies;
}
Run Code Online (Sandbox Code Playgroud)

另一种可能的表示(更容易添加和乘法)将使用单个NSInteger作为便士.

@interface Money : NSObject {
    //$10.25 is stored as pennies=1025
    NSInteger pennies;
}
Run Code Online (Sandbox Code Playgroud)

你的想法是什么?我可以使用"BigDecimal"类型吗?

currency objective-c ios

19
推荐指数
2
解决办法
6961
查看次数

Objective-C Singletons和LLVM/clang泄漏警告

我在应用程序的几个地方使用单例模式,并且clang在分析代码时出现内存泄漏错误.

static MyClass *_sharedMyClass;
+ (MyClass *)sharedMyClass {
  @synchronized(self) {
    if (_sharedMyClass == nil)
      [[self alloc] init];
  }
  return _sharedMyClass;
}

// clang error: Object allocated on line 5 is no longer referenced after this point and has a retain count of +1 (object leaked)
Run Code Online (Sandbox Code Playgroud)

我正在使用这些设置scan-build:

scan-build -v -v -v -V -k xcodebuild

我非常肯定单例中的代码很好 - 毕竟,它与Stack Overflow以及Apple的文档中引用的代码相同 - 但我希望将内存泄漏警告整理出来以便我的扫描 - 建立回报成功.

objective-c llvm clang

2
推荐指数
2
解决办法
2999
查看次数