我有以下代码以行和列的形式填充我的用户控件.正在填充的用户控件包含按钮,链接,文本框等.当在特定行/列中的特定用户控件上按下某个按钮时,我需要知道该按钮被按下了哪个用户控件.以下是在行和列中填充用户控件的XAML
<ItemsControl ItemsSource="{Binding Templates}" Width="{Binding GridWidth}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="{Binding NumColumns}" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style>
<Setter Property="Grid.Column" Value="{Binding ColumnIndex}" />
<Setter Property="Grid.Row" Value="{Binding RowIndex}" />
</Style>
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemTemplate>
</ItemsControl>
Run Code Online (Sandbox Code Playgroud)
模板基本上是在行/列中填充的UserControl的集合.我希望在ViewModel中执行此操作,但现在代码中的解决方案也可以正常工作.
CKI*_*KII 19
ItemsControl无法选择项目,仅显示集合.只有选择器或其中一个后代才能选择项目.
对于您的场景,我认为使用GridView的ListView是合适的.当用户单击该行中的控件时,该事件将冒泡到该项并且该项将被选中.您可以覆盖默认样式,使其不显示为选定行:WPF ListView关闭选择.ListView