ListView具有列和绑定性能

时间:2016-07-07 14:59:29

标签: c# wpf xaml listview profiler

我遇到ListView的性能问题:

单个项目需要13-30毫秒才能创建(50个项目超过1秒)。虚拟化(重新打印模式)已启用,但滚动甚至100个项目已经非常不舒服。

起初我以为是layout problem。但原因似乎是 - 绑定。

有多个列,每个列单元格具有不同的模板和不同的绑定,例如:

<GridViewColumn>
    <GridViewColumn.CellTemplate>
        <DataTemplate>
            <Grid>
                <TextBlock Text="{Binding Value}"
                           Visibility="{Binding IsEditable, Converter={local:TrueToCollapsedConverter}}" />
                <Grid local:GridBehavior.Columns=",auto"
                      Visibility="{Binding IsEditable, Converter={local:FalseToCollapsedConverter}}">
                    <TextBox Text="{local:ExceptionBinding Path=Value, Converter={local:DoubleToStringConverter}}"
                             local:TextBoxBehavior.SelectAllOnFocus="True"
                             local:ListBoxBehavior.SelectListBoxItemOnFocus="True" />
                    <TextBlock Grid.Column="1" Text="{local:Lng Key=Unit.mm}" />
               </Grid>
           </Grid>
       </DataTemplate>
   </GridViewColumn.CellTemplate>

任何单个绑定都会添加0.1毫秒的内容。有20列,每个单元有1到20个绑定,因此它导致:

绑定需要大部分时间,例如屏幕截图第一列的2.83 of 3.07 ms。

有没有办法获得一些表现?我做了一些明显的错误吗?

0 个答案:

没有答案