在我的应用程序中,我有一个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) 在尝试通过包装通用队列来实现我自己的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.那到底是怎么回事?
我试图编写一个小的递归程序来测试列表,并返回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) 我有一个设置了标题带的报告和一个包含表格的详细信息带.这两个频段之间没有间距.当我查看/打印报告时,细节带开始在第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)