C# ScrollViewer未滚动项控件更改

C# ScrollViewer未滚动项控件更改,c#,wpf,telerik,scrollviewer,C#,Wpf,Telerik,Scrollviewer,当ScrollViewer中ItemsControl的ItemsSource发生更改时,模式对话框中的ScrollViewer没有更改滚动行为,我遇到问题 第一次创建对话框时,ScrollViewer的滚动条的行为与内容大小的预期一致。将项目添加到ObservableCollection时,ItemsControl绑定到内容更改,但ScrollViewer不会对更改做出反应并激活滚动条 ObservableCollection中的几个项目: 添加到ObservableCollection的更多

当ScrollViewer中ItemsControl的ItemsSource发生更改时,模式对话框中的ScrollViewer没有更改滚动行为,我遇到问题

第一次创建对话框时,ScrollViewer的滚动条的行为与内容大小的预期一致。将项目添加到ObservableCollection时,ItemsControl绑定到内容更改,但ScrollViewer不会对更改做出反应并激活滚动条

ObservableCollection中的几个项目:

添加到ObservableCollection的更多项目:

应用程序重新启动后:



如何使ScrollViewer对更改的内容作出反应?

您的
ScrollViewer
位于
网格中。Row=“1”
具有固定的高度。将此网格的行高度更改为
*
。它应该会起作用。您还可以尝试使用不同的值来设置
垂直滚动条可见性

您的
滚动查看器
位于具有固定高度的
网格中。Row=“1”
。将此网格的行高度更改为
*
。它应该会起作用。此外,您还可以尝试不同的垂直滚动条可见性值。您的问题是,尽管定义为200 px,但容纳scrollviewer的行仍会增加其高度。将其设置为“*”,并在
行上设置属性
MaxHeight=“200”
——一切正常

 <Grid.RowDefinitions>
        <RowDefinition Height="25" />
        <RowDefinition Height="*" MaxHeight="200" />
        <RowDefinition Height="45" />
    </Grid.RowDefinitions>

您的问题是,尽管定义为200像素,但容纳scrollviewer的行的高度仍会增加。将其设置为“*”,并在
行上设置属性
MaxHeight=“200”
——一切正常

 <Grid.RowDefinitions>
        <RowDefinition Height="25" />
        <RowDefinition Height="*" MaxHeight="200" />
        <RowDefinition Height="45" />
    </Grid.RowDefinitions>


我现在尝试将高度设置为
*
并将
垂直滚动条可见性设置为
可见
,但没有效果。我现在尝试将高度设置为
*
并将
垂直滚动条可见性设置为
可见
,但没有效果。我不确定在哪里
为。我可以在列上设置MaxHeight吗?对不起,我是指行。我现在已经尝试了您的代码示例,但没有区别。您的第一个行定义是多余的。尝试以ScrollViewer包装ItemsPresenter时的方式修改ItemsControl控件模板。当您通过列表框更改ItemsControl并删除ScrollViewer时,它会工作。对吗?我不确定
列在哪里。我可以在列上设置MaxHeight吗?对不起,我是指行。我现在已经尝试了您的代码示例,但没有区别。您的第一个行定义是多余的。尝试以ScrollViewer包装ItemsPresenter时的方式修改ItemsControl控件模板。当您通过列表框更改ItemsControl并删除ScrollViewer时,它会工作。对吗?