如何指定datagrid列的宽度以占用剩余空间?
问题描述:
我正在开发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>
我下面的列表绑定到该数据网格
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;
}
的代码工作正常。 *宽度占用剩余空间。但是wen s1.FirstName被分配了一个非常长的字符串,然后代码运行,但datagrid不显示滚动条。姓氏列进入右侧并被隐藏。我不想增加datagrd的宽度。如何解决上述问题?为什么datagrid不显示滚动条?你能否给我提供任何可以解决上述问题的代码或链接。
答
此链接here描述了一个解决这个问题的解决方案。我有点怀疑,因为它不适用于WPF(我没有Silverlight),所以有兴趣听听它是否有效。
否则,我认为你将不得不动态设置最后一列的宽度,例如使用触发器。