我有一个名为(ProfileControl)的用户控件,它有一个图像两个textblock和一个按钮。我想要的是显示数据从SQL Server在我的应用程序视图的主页面每个控件水平相邻。当我按下控制按钮的时候就会有反应。
我将使用scrollviewer来自动调整大小。但我不确定使用什么,如果它是一个listbox, listview等,我也不确定如何正确地做建筑。还请我如何启用按钮的自定义事件处理程序在XAML.
到目前为止我做了什么:-
<ScrollViewer>
<ListBox Name="profileList" ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<profileControl:ProfileControl />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ScrollViewer>
谢谢,
更新:与下面的回复一样,我做了以下操作
<ListBox Name="profileList" ItemsSource="{Binding}">
<!--<ListBox.ItemTemplate>
<DataTemplate>
<profileControl:ProfileControl />
</DataTemplate>
</ListBox.ItemTemplate>-->
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Top"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
我注释了ItemTemplete部分,我确实设法看到了数据库中的数据。唯一缺少的是我需要启用用户控件的事件句柄(这是一个按钮),这是我需要在xml中写入(OnClickUserControl="UC_OutButton"//这是事件处理程序和目标方法)。
但是我不知道该怎么做…
如果你想改变项目的堆叠方式,那么你需要改变Listbox
的ItemsPanel
<ListBox Name="profileList" ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<profileControl:ProfileControl />
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
也不需要你的ScrollViewer
,因为它已经是ListBox
默认模板的一部分。至于Button
不确定你的意思是启用自定义事件处理程序的按钮在XAML但Button.Command
应该绑定到一些ICommand
在你的视图模型,这将显示你的ProfileControl
控件