小编Bor*_*ort的帖子

列表视图虚拟化并取消选择所有项目

在我的应用程序中,我有一个listview,其项目容器样式绑定到我的视图模型上的IsSelected属性.

我还在listview上设置了一个inputbinding来处理以编程方式选择列表中的所有项目,因为默认情况下由于虚拟化堆栈面板不起作用.这很好用.

当用户按下CTRL + A后单击单个列表项时出现问题.用户应该期望发生的是单击的单个新项目成为唯一选择的项目.实际发生的是listview不会更新看不到的项目的IsSelected属性,只有当前可见的项目才会被取消选中.

我该如何正确处理这种行为?

<ListView
    Name="sortList"
    Grid.Row="1" 
    ItemsSource="{Binding RelativeSource={RelativeSource 
    FindAncestor, AncestorType={x:Type UserControl}}, 
    Path=ItemsSource, Mode=TwoWay}">
    <ListView.InputBindings>
        <KeyBinding Gesture="CTRL+A" Command="{Binding SelectAllCommand}" />
    </ListView.InputBindings>

    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
            <Setter Property="Padding" Value="3" />
            <Setter 
                Property="IsSelected" 
                Value="{Binding Path=IsSelected, Mode=TwoWay}" />
        </Style>
    </ListView.ItemContainerStyle>
</ListView>
Run Code Online (Sandbox Code Playgroud)

这是select all命令.

private RelayCommand _selectAllCommand;
public System.Windows.Input.ICommand SelectAllCommand
{
    get
    {
        if (_selectAllCommand == null)
            _selectAllCommand = new RelayCommand(param => this.SelectAll());
        return _selectAllCommand;
    }
}

private void SelectAll()
{
    foreach (object o in this.Objects)
       if (!this.SelectedItems.Contains(order))
           order.IsSelected = …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml listview

7
推荐指数
0
解决办法
1726
查看次数

Queue <T>实际实现了什么

在尝试通过包装通用队列来实现我自己的Queue时,我注意到Queue实现了ICollection.但是,ICollection.CopyTo的方法签名如下

void CopyTo(
    Array array,
    int index)
Run Code Online (Sandbox Code Playgroud)

而通用Queue.CopyTo的方法签名是

public void CopyTo(
    T[] array, 
    int arrayIndex)
Run Code Online (Sandbox Code Playgroud)

这与ICollection.CopyTo的通用版本的签名相同.我的困惑来自于通用队列似乎没有实现通用ICollection,而是实现标准ICollection.那到底是怎么回事?

.net c# c#-4.0

6
推荐指数
1
解决办法
639
查看次数

递归检查列表中的原子

我试图编写一个小的递归程序来测试列表,并返回t,如果每个元素都是一个原子.我遇到的问题是,当函数收到一个空列表时,它返回t而不是所需的nil结果.我无法想出一种方法,让它为最初的空列表返回nil,并且仍然以递归方式正常运行.

(defun only-atoms (in)
  (if (null in)
    t
    (and (atom (first in)) (only-atoms (cdr in)) )
  )
)
Run Code Online (Sandbox Code Playgroud)

recursion common-lisp

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

Jasper报告 - 详细信息不会在第一页上打印

我有一个设置了标题带的报告和一个包含表格的详细信息带.这两个频段之间没有间距.当我查看/打印报告时,细节带开始在第2页的顶部打印,页面1在页眉和页脚之间留有一个大的空白区域.

如何让Detail带直接打印在第1页的标题下?

编辑:下面的代码.

<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Summary" language="groovy" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="24a40acb-a702-48a6-b655-04f85fdba2a9">
    <property name="ireport.zoom" value="1.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    ...
    <background>
        <band splitType="Stretch"/>
    </background>
    <title>
        <band height="79" splitType="Stretch">
            <staticText>
                ...
            </staticText>
            ...
        </band>
    </title>
    <pageHeader>
        <band splitType="Stretch"/>
    </pageHeader>
    <columnHeader>
        <band splitType="Stretch"/>
    </columnHeader>
    <detail>
        <band height="753" splitType="Stretch">
            <componentElement>
                <reportElement uuid="3835c484-c5a2-4615-8018-b95d8d0b7f43" x="0" y="0" width="555" height="753" isPrintWhenDetailOverflows="true"/>
                <jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
                    ...
                </jr:table>
            </componentElement>
        </band>
    </detail>
    <columnFooter>
        <band splitType="Stretch"/>
    </columnFooter>
    <pageFooter>
        <band height="29" splitType="Stretch"> …
Run Code Online (Sandbox Code Playgroud)

jasper-reports

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

标签 统计

c# ×2

.net ×1

c#-4.0 ×1

common-lisp ×1

jasper-reports ×1

listview ×1

recursion ×1

wpf ×1

xaml ×1