代码之家  ›  专栏  ›  技术社区  ›  Drake

如何定义与其父级大小相同的listboxitem模板?

  •  2
  • Drake  · 技术社区  · 14 年前

    我使用以下代码:

    <ListBox 
        x:Name="lbItems"            
        Grid.Row="1"
        Margin="2">
        <ListBox.Template>
            <ControlTemplate>
                <Border 
                    Background="{StaticResource DarkerBrush}"                            
                    Width="{Binding Path=ActualWidth, RelativeSource={RelativeSource AncestorType={x:Type ListBox}, Mode=FindAncestor}}"
                    BorderBrush="{StaticResource MediumBrush}"
                    BorderThickness="0"
                    CornerRadius="4">
                    <ItemsPresenter />                            
                </Border>
            </ControlTemplate>
        </ListBox.Template>
    </ListBox>
    

    它可以工作,但是我在输出窗口中看到一个异常,我想删除它。

    system.windows.data信息:10: 无法使用 绑定且没有有效的回退值 存在;改为使用默认值。 bindingExpression:path=actualWidth; dataitem=null;目标元素是 “border”(名称=“”);目标属性为 “宽度”(键入“double”)

    可能我做的事情不对,你知道吗 如何改进代码 ?

    1 回复  |  直到 14 年前
        1
  •  2
  •   EgorBo    14 年前
    Width="{Binding ElementName=lbItems, Path=ActualWidth}" ?