我使用的是ListView控件而不是DataGrid我的WPF应用程序.我想给*我的宽度ListView.GridViewColumn,但每当我提供*宽度时ListView.GridViewColumn,它给我一个编译时错误.请建议我如何提供*宽度ListView.GridViewColumn,以便ListView.GridViewColumn在我最大化屏幕时自动填充额外空间.
对此的任何帮助将非常感谢.谢谢
<DataGridTextColumn Binding="{Binding Name}" Width="*"/>
<DataGridTextColumn Binding="{Binding Change}" Width="Auto"/>
Run Code Online (Sandbox Code Playgroud)
当Change更新的值时,其列不会更新以适合新值.因此列保持太小并且值被剪裁.
有任何想法吗?
假设我有以下ListView:
<ListView ScrollViewer.VerticalScrollBarVisibility="Auto">
<ListView.View>
<GridView>
<GridViewColumn Header="Something"
DisplayMemberBinding="{Binding Path=ShortText}" />
<GridViewColumn Header="Description"
DisplayMemberBinding="{Binding Path=VeryLongTextWithCRs}" />
<GridViewColumn Header="Something Else"
DisplayMemberBinding="{Binding Path=AnotherShortText}" />
</GridView>
</ListView.View>
</ListView>
Run Code Online (Sandbox Code Playgroud)
我希望短文本列始终适合屏幕,而长文本列则使用剩余空间,必要时自动换行.
那可能吗?
我的UI:
<ListView Name="persons" SelectionChanged="persons_SelectionChanged">
<ListView.View>
<GridView AllowsColumnReorder="False">
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}" Width="auto"/>
<GridViewColumn Header="Age" DisplayMemberBinding="{Binding Age}" Width="auto"/>
</GridView>
</ListView.View>
</ListView>
Run Code Online (Sandbox Code Playgroud)
我的UI的Codebehind:
internal void Update(IEnumerable<Person> pers)
{
this.persons.ItemsSource = null;
this.persons.ItemsSource = pers;
UpdateLayout();
}
Run Code Online (Sandbox Code Playgroud)
我的实体:
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
GridViewColumns具有GridViewColumn-Header的宽度.即使我使用长名称的人调用Update().列不会调整大小.
a)如何自动调整"名称"列(当我调用更新时)到最长名称的长度,但不长于值x(我想指定列的最大宽度)?
b)如何指定"Age"-Column将空间填充到控件的末尾(以便gridview的列使用控件的完整宽度)?
我正试图在ListView/Gridview中对齐数据,我使用DisplayMemberBinding.
这是(部分)我的gridview看起来如何:
<ListView>
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn DisplayMemberBinding="{Binding Path=Timi}" Width="Auto">
<GridViewColumnHeader Content="Tími" Click="GridViewColumnHeader_Click" ></GridViewColumnHeader>
</GridViewColumn>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
Run Code Online (Sandbox Code Playgroud)
我尝试使用CellTemplate,就像在这个页面上解释 http://msdn.microsoft.com/en-us/library/system.windows.controls.gridviewcolumn.celltemplate.aspx 但它没有用,然后我读到了某个地方一个人不应该一起使用cellTemplate和DisplayMemberBinding.
所以问题是:当我使用DisplayMemberBinding将数据绑定到gridview时,如何使gridview数据居中?
提前致谢.