【发布时间】:2011-03-23 15:16:42
【问题描述】:
这是我的代码中的一个奇怪的错误,我不知道是什么原因造成的。
构建数据网格的代码似乎不错。它是从具有功能的数据网格中复制而来的。原因似乎是该控件是其子控件的控件。
编辑:在我的挫败感中,我删除了导航框架和我的控件之间的任何控件。我的控件使用基于通用类的数据上下文,并且我已经通过单元测试验证了它是否按预期工作 - 除了设置 List 属性的加载方法之外,它基本上是空的。 load 方法有效并返回一个填充的 observable 集合。
一切都加载和绑定。交互用于连接网格和我的详细信息表单。
但是,唯一可选择的单元格是第一行中的单元格 - 但是,当您将鼠标悬停在其他行上时,它们会突出显示。他们只是不响应点击事件。
最大的问题是:是否有人知道可能导致这种行为的任何条件(即控件的嵌套)? 例如,我知道将手风琴控件和 scrollViewers 结合使用会产生各种讨厌的副作用。
编辑:我尝试替换与此控件一起使用的控件(它们继承了相同的基础对象,因此它们是兼容的。当我这样做时,我得到了相同的损坏行为。这意味着 viewmodel 有问题。 .. 或更多可能是绑定(但数据正在出现:/)...
数据网格的代码:
<sdk:DataGrid
AutoGenerateColumns="False"
x:Name="dgBankCodes"
ItemsSource="{Binding List}"
IsReadOnly="True"
SelectionMode="Single" >
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Binding="{Binding Code}" CanUserSort="True" Header="Bank Code" IsReadOnly="True"/>
<sdk:DataGridTextColumn Binding="{Binding Name}" CanUserSort="True" Header="Name" IsReadOnly="True"/>
<sdk:DataGridTextColumn Binding="{Binding SortCode}" CanUserSort="True" Header="Sort Code" IsReadOnly="True"/>
<sdk:DataGridTextColumn Binding="{Binding AccountNumber}" CanUserSort="True" Header="Act No" IsReadOnly="True"/>
<sdk:DataGridTextColumn Binding="{Binding Description}" CanUserSort="True" Header="Description" IsReadOnly="True"/>
<sdk:DataGridTextColumn Binding="{Binding IBAN}" Header="IBAN" IsReadOnly="True"/>
<sdk:DataGridTextColumn Binding="{Binding BIC}" CanUserSort="True" Header="BIC" IsReadOnly="True"/>
</sdk:DataGrid.Columns>
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction
Command="{Binding SelectObjectCommand}"
CommandParameter="{Binding SelectedItem, ElementName=dgBankCodes}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</sdk:DataGrid>
【问题讨论】:
标签: silverlight datagrid