我有一个名为( ProfileControl )的用户控件,其图片包含两个文本块和一个按钮 。我想要的是在我的应用程序视图的主页面中显示来自SQL Server的数据,每个控件在水平方向上彼此相邻。当我按下控件中的按钮时响应。
我将使用 scrollviewer 进行自动调整大小。但是我不确定如果它是列表框, 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部分,我确实设法从数据库中查看数据。唯一缺少的是我需要启用用户控件的事件句柄(这是一个按钮),我需要在xmal中编写(OnClickUserControl =&#34; UC_OutButton&#34; //这是事件处理程序和目标方法)。
但我不知道该怎么做..请告诉我。
答案 0 :(得分:2)
如果您想更改商品的堆叠方式,则需要更改ItemsPanel
的{{1}}
Listbox
也不需要<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
不确定你是什么意思启用XAML中按钮的自定义事件处理程序但是Button
应绑定到你的某些Button.Command
查看模型,将由ICommand
控件