1

我有一个与某些数据绑定的 ListBox,我希望在其中有重复的 DataGrids。

我在这样做时发现了一个奇怪的异常,希望有人能帮助我。

如果我将 DataGrid 与 ColumnWidths="*" 放在一起,它可以正常工作。

如果我将 DataGrid 放在 ListBox 中,那么这些列都很小。

这是我刚刚在 Blend 中创建的一个简单示例:

<Window.Resources>
<SampleData:SampleDataSource x:Key="SampleDataSource" d:IsDataSource="True"/>
</Window.Resources>

<DockPanel DataContext="{Binding Source={StaticResource SampleDataSource}}" >               
   <ListBox HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch">
      <DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Collection}"
           ColumnWidth="*" >
    <DataGrid.Columns>
      <DataGridTextColumn Binding="{Binding Property1}" Header="Property1"/>
      <DataGridCheckBoxColumn Binding="{Binding Property2}" Header="Property2"/>
      </DataGrid.Columns>
      </DataGrid>
   </ListBox>       
</DockPanel>

这会产生以下输出: 坏的,坏的数据网格列

任何想帮我解决这个问题的人,我将不胜感激。

谢谢。

4

1 回答 1

1

我遇到了同样的问题。尝试这个:

    <ListBox>
        <ItemsControl.Template>
            <ControlTemplate TargetType="ItemsControl">
                <ItemsPresenter Width="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBox}}, Path=ActualWidth}"/>
            </ControlTemplate>
        </ItemsControl.Template>
        <!-- ... -->
    </ListBox>
于 2014-05-05T22:20:24.727 回答