如何指定datagrid列的宽度来占用剩余空间?

时间:2012-07-07 09:32:24

标签: c# silverlight-4.0 datagrid column-width

我正在开发silverlight 4应用程序。我有以下datagrid

<data:DataGrid x:Name="StudentDataGrid" AutoGenerateColumns="False" Height="200" HorizontalAlignment="Left" Margin="176,96,0,0" VerticalAlignment="Top" Width="200">
            <data:DataGrid.Columns>
                <data:DataGridTextColumn Header="First Name" Binding="{Binding FirstName}"></data:DataGridTextColumn>
                <data:DataGridTextColumn Width="*" Header="Last Name" Binding="{Binding LastName}" ></data:DataGridTextColumn>

            </data:DataGrid.Columns>
        </data:DataGrid>

我将以下列表绑定到此datagrid

 public List<Student> GetStudents()
        {
            List<Student> studentList = new List<Student>();
            Student s1 = new Student();
            s1.FirstName = "Anil";
            s1.LastName = "Jadhav";
            Student s2 = new Student();
            s2.FirstName = "Shyam";
            s2.LastName = "Jodh";
            studentList.Add(s1);
            studentList.Add(s2);
            return studentList;
        }

代码工作正常。 *宽度占据剩余空间。但是,如果为s1.FirstName分配了具有非常长字符串的值,则代码运行但数据网格不显示滚动条。 LastName列转到右侧,它将被隐藏。我不想增加datagrd的宽度。如何解决上述问题?为什么datagrid没有显示滚动条?能否请您提供我可以解决上述问题的任何代码或链接。

1 个答案:

答案 0 :(得分:0)

此链接here描述了针对此问题的解决方案。我有点怀疑,因为它不适用于WPF(我没有Silverlight),所以有兴趣听听它是否有效。

否则我认为您必须动态设置最后一列的宽度,例如使用触发器。