我有一个非常简单的wpf listview
<ListView ItemsSource="{Binding items}" MinHeight="0">
<ListView.View>
<GridView x:Name="columnsGridView">
</GridView>
</ListView.View>
</ListView>
我将它与某个类绑定以显示
aaa bbb ccc
并在listview的SizeChanged函数中运行
foreach (var item in columnsGridView.Columns.Select((v, i)=> new {v, i}))
{
if (someCondition)
{
width += item.v.ActualWidth;
}
}
但是我发现ActualWidth总是0而Width是NaN(这就是我需要的)
如果我指定它的宽度,那么我当然可以获得宽度。但是如何在listview的SizeChanged函数中获得自动宽度项的宽度?
P.S。 我注意到在这个函数之外我可以得到它们的宽度..
答案 0 :(得分:0)
首先,我必须定义至少一列才能显示项目:
BufferedInputStream.read()
现在使用LoadedEvent显示项目,您可以获得实际宽度:
<ListView MinHeight="0" Loaded="ListView_Loaded" >
<ListView.View>
<GridView x:Name="GridViewInstance">
<GridViewColumn DisplayMemberBinding="{Binding}" Header="First Name" />
</GridView>
</ListView.View>
<ListView.Items>
<sys:String>1</sys:String>
<sys:String>2</sys:String>
<sys:String>3</sys:String>
<sys:String>4</sys:String>
<sys:String>5</sys:String>
<sys:String>6</sys:String>
<sys:String>7</sys:String>
</ListView.Items>
</ListView>
现在您可以根据需要进行操作