Высота ListBoxItem не обновляется - PullRequest
0 голосов
/ 01 мая 2010

У меня есть список внутри другого списка, во внутреннем списке высота списка может увеличиваться или уменьшаться. Моя проблема в том, что когда внутренние элементы уменьшаются, внешний список не перерисовывается. Таким образом - остается с предыдущей высотой до того, как внутренний список сократился.

Я перепробовал здесь очень много вещей, среди всех недействительных, выбор и отмена выбора элемента списка, который должен быть обновлен и многое другое - ничего не помогает ....

Может кто-нибудь помочь мне с этим?

Thanx, Гили

Ответы [ 2 ]

0 голосов
/ 04 сентября 2010

Возьмем для примера:

    <ListBox VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Width="500">
        <ListBox x:Name="Item1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Width="300" BorderBrush="Red" BorderThickness="5">
            <ListBox.Items>
                <RichTextBox VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Width="300" SizeChanged="OnInnserItemSizeChanged"/>
                <RichTextBox VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Width="300"/>
                <RichTextBox VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Width="300"/>
            </ListBox.Items>
        </ListBox>
        <ListBox x:Name="Item2" BorderBrush="Green" BorderThickness="5" Width="300" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
            <ListBox.Items>
                <RichTextBox VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Width="300"/>
                <RichTextBox VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Width="300"/>
                <RichTextBox VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Width="300"/>
            </ListBox.Items>
        </ListBox>            
    </ListBox>

Теперь, когда я запускаю его и нажимаю «Enter» / «Return» в одном из RichTextBoxes, внешний элемент списка растягивается, чтобы соответствовать новому размеру - но когда я удаляю вновь добавленную строку, он не изменяет размер к первоначальному размеру ...

Thanx, Гили

0 голосов
/ 02 мая 2010

Просто, черт возьми, я сделал следующее:

    <Grid x:Name="LayoutRoot">
    <ListBox HorizontalAlignment="Left" Width="283" VerticalAlignment="Top">
        <ListBox Margin="0,0,-274,0">
            <ListBoxItem Content="Text"/>
            <ListBoxItem Content="Text"/>
            <ListBoxItem Content="Text"/>
            <ListBoxItem Content="Text"/>
            <ListBoxItem Content="Text"/>
            <ListBoxItem Content="Text"/>
        </ListBox>
        <ListBox Margin="0,0,-274,0">
            <ListBoxItem Content="Text"/>
            <ListBoxItem Content="Text"/>
            <ListBoxItem Content="Text"/>
            <ListBoxItem Content="Text"/>
            <ListBoxItem Content="Text"/>
            <ListBoxItem Content="Text"/>
        </ListBox>
        <ListBox Margin="0,0,-274,0">
            <ListBoxItem Content="Text"/>
            <ListBoxItem Content="Text"/>
            <ListBoxItem Content="Text"/>
        </ListBox>
        <ListBox Margin="0,0,-274,0">
            <ListBoxItem Content="Text"/>
            <ListBoxItem Content="Text"/>
            <ListBoxItem Content="Text"/>
            <ListBoxItem Content="Text"/>
            <ListBoxItem Content="Text"/>
            <ListBoxItem Content="Text"/>
        </ListBox>
    </ListBox>
</Grid>

Теперь я понимаю, что элементы в списках не создаются во время выполнения, однако я создал маленькую кнопку с обработчиком щелчков, которая добавляет элементы в одно из средних списков, и все изменяется соответствующим образом.

Если вы опубликуете свой код, мы можем посмотреть, что вышло из строя.

...