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>
这里的数据模板是一个带有文本块的简单网格,您也可以在那里使用自己的自定义控件
我的问题是如何将自定义控件的 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>
这里的数据模板是一个带有文本块的简单网格,您也可以在那里使用自己的自定义控件