我有两个堆栈面板,每个包含一个数据网格。
我在加载源代码时设置了datagrid的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个radioButton和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 Exception
当两个面板在开头可见时,它们看起来很好,没有错误。当我点击radioButton并进入处理程序时,模板列也出现了......
我尝试了另一个: 当我明星同时可见,应用程序运行良好,并且面板出现并且以我想要的方式消失...所以看起来,当我出演两个都折叠时出现问题。
我无法在应用程序运行时更改包含Source的面板的可见性吗?
谢谢。
答案 0 :(得分:0)
在XAML中设置Visibility =“Collapsed”时,当窗口加载时,该控件不会实例化。如果使用WPF,请尝试Visibility =“Hidden”。 Silverlight不支持隐藏的可见性。或尝试在Window的Loaded事件中设置Collapsed属性。
答案 1 :(得分:0)
我想说上面的列代码存在问题,但如果没有更多代码则很难说清楚。我通常将控件的visibility属性绑定到页面的datacontext上的属性,并在需要时设置该值。如果您发布更多代码,我可以提供更多帮助。