【发布时间】:2013-04-10 14:46:46
【问题描述】:
我有两个堆栈面板,每个包含一个数据网格。
我在加载源时设置了我的数据网格的 itemsSource。
我的面板一开始是折叠的,然后,当我选中一个 RadioButton 时,必须出现。
这是stackpanel的xaml:
<StackPanel Name="spListeList"
Grid.Row="0"
Grid.Column="2"
Orientation="Horizontal"
Visibility="Collapsed">
<sdk:DataGrid Name="dgListList"
VerticalAlignment="Top"
HorizontalAlignment="Left"
AutoGenerateColumns="False"
AlternatingRowBackground="Orange"
IsReadOnly="True">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Binding="{Binding IdList, Mode=TwoWay}"
Visibility="Collapsed"
Width="10"/>
<sdk:DataGridTextColumn Header=" "
Width="85"
Binding="{Binding LibList, Mode=TwoWay}"/>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
</StackPanel>
<StackPanel Name="spListeJury"
Grid.Row="0"
Grid.Column="3"
Orientation="Horizontal"
Visibility="Collapsed">
<sdk:DataGrid Name="dgListeJury"
VerticalAlignment="Top"
HorizontalAlignment="Left"
AutoGenerateColumns="False"
AlternatingRowBackground="Orange"
IsReadOnly="True">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Binding="{Binding IdJury, Mode=TwoWay}"
Visibility="Collapsed"
Width="10"/>
<sdk:DataGridTextColumn Header=" "
Width="85"
Binding="{Binding LibJury, Mode=TwoWay}" />
</sdk:DataGrid.Columns>
</sdk:DataGrid>
</StackPanel>
我为它们准备了 10 个单选按钮和 2 个处理程序(名称类似)。
void rbListeList_Checked(object sender, RoutedEventArgs e)
{
try
{
if (templateColumnListeList == null)
{
templateColumnListeList = new DataGridTemplateColumn();
}
dgListeList.Columns.Remove(templateColumnListeList);
templateColumnListeList.Header = "Select";
templateColumnListeList.CellTemplate = (DataTemplate)Resources["ItemTemplateSelect"];
dgListeList.Columns.Add(templateColumnListeList);
templateColumnListeList.DisplayIndex = 0;
spListeList.Visibility = Visibility.Visible;
spListeJury.Visibility = Visibility.Collapsed;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
当我评论改变可见性的行时,没有任何问题。但如果不是,我得到了 ArgumentOutOfBound 异常
当两个面板在开始时可见时,它们看起来很好,没有错误。当我单击单选按钮并进入处理程序时,模板列也会出现......
我又试了一个: 当我以可见的方式加注时,应用程序运行良好,并且面板以我想要的方式出现和消失......所以看起来,当我同时折叠时出现问题。
我不能在应用程序运行时更改面板上的可见性,包含 Source 吗?
谢谢。
【问题讨论】:
-
如果单步进入代码,ArgumentOutOfBound 异常在哪里抛出?
-
在 try 块的末尾。
-
每次可见性更改都会引发它?我有点怀疑它来自
templateColumnListeList.DisplayIndex = 0; -
我也是。但是,当我统计两者都可见时,应用程序运行良好......甚至可见性也发生了变化......
-
您是否尝试过仅评论两条可见性行中的一条?让我们看看是否只有其中一个抛出异常。
标签: c# silverlight xaml silverlight-4.0