Как определить шаблон ListBoxItem, который имеет такой же размер своего родителя? - PullRequest
2 голосов
/ 16 апреля 2010

Я использую следующий код:

<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; целевой элемент 'Граница' (Имя = ''); целевое свойство «Ширина» (тип «Двойной»)

Возможно, я делаю что-то не совсем правильно, так что у вас есть идеи как я могу улучшить свой код ?

1 Ответ

2 голосов
/ 16 апреля 2010
Width="{Binding ElementName=lbItems, Path=ActualWidth}" ?
...