【发布时间】:2015-08-25 14:36:43
【问题描述】:
我有这个简单的用户控制 (XAML):
<UserControl x:Class="finalProject_ClientX.queryResults"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="500" d:DesignWidth="500" Loaded="UserControl_Loaded">
<Grid Height="476" Background="#70BCE373">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="494" />
<ColumnDefinition Width="0*" />
<ColumnDefinition Width="6*" />
</Grid.ColumnDefinitions>
<DataGrid AutoGenerateColumns="true" Height="374" HorizontalAlignment="Left" Margin="27,51,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="448" SelectionChanged="dataGrid1_SelectionChanged" />
<Label Content="Query Results" Height="54" HorizontalAlignment="Stretch" Margin="27,0,19,0" Name="label1" VerticalAlignment="Top" DataContext="{Binding}" FontFamily="Tunga" FontSize="36" FontWeight="Bold" FontStyle="Normal" Opacity="1" Foreground="#FF0059B3" HorizontalContentAlignment="Center" />
<Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="189,441,0,0" Name="button1" VerticalAlignment="Top" Width="75" />
</Grid>
而我按照这个方法设置表格行数:
public void setList<T>(List<T> list)
{
dataGrid1.ItemsSource = list;
//dataGrid1.Columns.RemoveAt(1);
dataGrid1.Columns[1].Visibility = Visibility.Collapsed;
}
该方法获取一个通用列表,并在dataGrid中设置该列表。但是我得到了另一个字段,该字段未包含在课程中。此字段是“扩展数据”。 .
我尝试使用以下行删除/隐藏此列:
dataGrid1.Columns[1].Visibility = Visibility.Collapsed;
或
dataGrid1.Columns.RemoveAt(1);
'1' 因为它总是第一列('0' 也不起作用)。 我得到这个错误:
在 mscorlib.dll 中发生了“System.ArgumentOutOfRangeException”类型的未处理异常
附加信息:索引超出范围。必须是非负数 并且小于集合的大小。
【问题讨论】:
-
为什么这个 WPF 截图却是一个 winform 应用?
-
可能是嵌入在 WinForms 应用中的 WPF?
-
对"C# ExtensionData" 的快速谷歌搜索表明它是一个公共属性,通常由代理添加到可序列化类中以支持往返数据传输。