0

我正在创建一个 C# 项目,其中许多组合框列以编程方式添加到数据网格中。不幸的是,当添加许多列时,数据网格无法全部显示,并且水平滚动条被禁用且无法点击。

设计 :

<DataGrid ScrollViewer.CanContentScroll="True" ScrollViewer.HorizontalScrollBarVisibility="Visible"  x:Name="dg" Grid.Column="1" Grid.Row="0" AutoGenerateColumns="false"  Background="#FFDFF9F9" Height="76" VerticalAlignment="Top" Margin="2,82,0,0" HorizontalAlignment="Stretch"/>

代码 :

        foreach (var r in importMappings)
        {
            var dgtc = new DataGridTextColumn();
            dgtc.Binding = new Binding(string.Format("[{0}]", r.Key));
            var sp = new StackPanel();
            dgtc.Header = sp;
            sp.Children.Add(new Label { Content = r.Key });
            var combo = new ComboBox();
            sp.Children.Add(combo);
            combo.ItemsSource = excelHeaders;
            int x = combo.SelectedIndex;
            var selectedBinding = new Binding(string.Format("[{0}]", r.Key));
            selectedBinding.Source = importMappings;
            combo.SetBinding(Selector.SelectedIndexProperty, selectedBinding);
            dgtc.CanUserSort = false;
            dgtc.CanUserReorder = false;
            dg.Columns.Add(dgtc);
        }

实时取景:

在此处输入图像描述

滚动条在此处始终处于禁用状态。关于如何使滚动条工作的任何想法?

4

1 回答 1

1

看起来您没有任何数据行。添加一行数据后,滚动条对我有用。

对于测试,只需将您的数据网格编辑为:

<DataGrid ScrollViewer.CanContentScroll="True" ScrollViewer.HorizontalScrollBarVisibility="Visible"  x:Name="dg" Grid.Column="1" Grid.Row="0" AutoGenerateColumns="false"  Background="#FFDFF9F9" Height="76" VerticalAlignment="Top" Margin="2,82,0,0" HorizontalAlignment="Stretch">
<TextBlock />
</DataGrid>

滚动条现在应该可以工作了。

于 2014-10-22T09:13:20.547 回答