Scrollviewer 中的自定义控件

Custom Control in Scrollviewer

我的问题是如何将自定义控件的 ViewModel 列表放入使用项目模板显示的滚动查看器中。我读了一些关于 Virtualizingstackpanels 和 itemcontrol 的东西,但我不太明白这个。

如果有人能帮助我,那就太好了。

假设您想要在滚动查看器中使用同一视图模型的多个实例,您需要执行类似这样的操作

public class MyViewModel
{
   public string SomeProperty {get;set;}
}

在您的视图中使用 ItemsControl 并提供 DataTemplate 并将其绑定到视图模型列表。

<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
    <ItemsControl ItemsSource="{Binding ListOfViewModels}">
     <ItemsControl.ItemTemplate>
        <DataTemplate>
           <Grid>
             <TextBlock Text="{Binding SomeProperty}"/>
           </Grid>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
    </ItemsControl>
</ScrollViewer>

这里的数据模板是一个带有文本块的简单网格,您也可以在那里使用自己的自定义控件

您可以阅读更多关于项目控制的内容here and here