C# 手风琴项目没有';它不会以应有的方式出现
我正在写一个silverlight页面,在我的应用程序中,我遇到了一个奇怪的问题 所以,在我的页面中,我得到了三个手风琴项目:其中2个是静态的,1个是动态的 我为每个手风琴项目绑定数据源,因此,最后一个数据源取决于两个第一C# 手风琴项目没有';它不会以应有的方式出现,c#,C#,我正在写一个silverlight页面,在我的应用程序中,我遇到了一个奇怪的问题 所以,在我的页面中,我得到了三个手风琴项目:其中2个是静态的,1个是动态的 我为每个手风琴项目绑定数据源,因此,最后一个数据源取决于两个第一 foreach (CadreEmp item in CadreEmpSource.DataView) { Catproc isInCat = CatprocSource.DataView.OfType<Catpr
foreach (CadreEmp item in CadreEmpSource.DataView)
{
Catproc isInCat = CatprocSource.DataView.OfType<Catproc>().Where(ores => ores.IdCat == item.IdCat).FirstOrDefault();
Filproc isInFil = FilprocSource.DataView.OfType<Filproc>().Where(ores => ores.IdFil == item.IdFil).FirstOrDefault();
if (isInCat != null && isInFil != null)
{
CadreEmpUI caUi = new CadreEmpUI();
caUi.IdCadreEmp = item.IdCadreEmp;
caUi.IdCat = item.IdCat;
caUi.IdFil = item.IdFil;
caUi.LibCadreEmp = item.LibCadreEmp;
caUi.IsSelect = item.IsSelect;
lstCadreEmp.Add(caUi);
CadreEmpProc caP = CadreEmpProcSource.DataView.OfType<CadreEmpProc>().Where(ores => ores.IdCadreEmp == caUi.IdCadreEmp).FirstOrDefault();
if (caP != null)
{
caUi.IsSelect = true;
}
}
}
dgCadreEmp.ItemsSource = null;
dgCadreEmp.ItemsSource = lstCadreEmp;
但什么都没有。试图更新布局,但什么都没有
我一点也不懂。多谢各位
xaml代码:
<layout:Accordion Width="Auto"
Grid.ColumnSpan="2"
Grid.Column="4"
Grid.RowSpan="2"
x:Name="accCadreEmp"
SelectionMode="ZeroOrOne"
ExpandDirection="Down"
Grid.Row="0">
<layout:AccordionItem
x:Name="aiCadreEmp">
<StackPanel Orientation="Vertical">
<sdk:DataGrid x:Name="dgCadreEmp"
MaxWidth="1200"
AutoGenerateColumns="False" >
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Header="Libellé"
IsReadOnly="True"
Binding="{Binding LibCadreEmp}" />
</sdk:DataGrid.Columns>
</sdk:DataGrid>
</StackPanel>
</layout:AccordionItem>
</layout:Accordion>
StackPanel为其子级提供无限高,有时会产生奇怪的副作用,尤其是当需要动态调整其大小时。我想,在这种情况下,手风琴也为它的孩子们提供了无限的高度,所以我们还不知道他们的行为
如果您只需要2或3行,请改用网格。为什么在StackPanel中有DataGrid?@ad1Dima好吧,这是为了防止我需要在此块中添加另一项(如按钮…)。但你说得很对。因为我移除了stackPanel,所以它更新得很好。这个stackpanel怎么能窃听代码?谢谢。我从来没有想过可能是堆栈面板在窃听我的应用程序。我想,DataGrid也必须为它的孩子提供无限高。如果它还有无穷多个父对象(如StackPanel、ScrollViewer或Canvas),它将通过内容来度量自身。这一步可能有错误。
<layout:Accordion Width="Auto"
Grid.ColumnSpan="2"
Grid.Column="4"
Grid.RowSpan="2"
x:Name="accCadreEmp"
SelectionMode="ZeroOrOne"
ExpandDirection="Down"
Grid.Row="0">
<layout:AccordionItem
x:Name="aiCadreEmp">
<StackPanel Orientation="Vertical">
<sdk:DataGrid x:Name="dgCadreEmp"
MaxWidth="1200"
AutoGenerateColumns="False" >
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Header="Libellé"
IsReadOnly="True"
Binding="{Binding LibCadreEmp}" />
</sdk:DataGrid.Columns>
</sdk:DataGrid>
</StackPanel>
</layout:AccordionItem>
</layout:Accordion>