如何使用绑定列表中的用户控件



我有一个名为(ProfileControl)的用户控件,它有一个图像两个textblock和一个按钮。我想要的是显示数据从SQL Server在我的应用程序视图的主页面每个控件水平相邻。当我按下控制按钮的时候就会有反应。

我将使用scrollviewer来自动调整大小。但我不确定使用什么,如果它是一个listboxlistview等,我也不确定如何正确地做建筑。还请我如何启用按钮的自定义事件处理程序在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"//这是事件处理程序和目标方法)。

但是我不知道该怎么做…

如果你想改变项目的堆叠方式,那么你需要改变ListboxItemsPanel

<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不确定你的意思是启用自定义事件处理程序的按钮在XAMLButton.Command应该绑定到一些ICommand在你的视图模型,这将显示你的ProfileControl控件

相关内容

  • 没有找到相关文章

最新更新