我创建了这样的表格视图:
这些单元格彼此不同。我希望这些单元格是可点击的。但是我不知道该怎么做。在Android上,有一个名为
的监听器
setOnItemClickListener,但我不知道WPF上的等效项。我知道SelectedItem可以用于ListView,但是我需要这个确切的视图。我无法自定义ListView。
这是我为此表视图创建的代码:
<Grid>
<ScrollViewer>
<StackPanel>
<ItemsControl x:Name="ListViewTableBorder" ItemsSource="{Binding TableName}" Selector.Selected="ListViewTableBorder_Selected">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border Style="{StaticResource sales_border}" MouseLeftButtonUp="Border_MouseLeftButtonUp">
<TextBlock Name="tablename" Text="{Binding tablename}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White" FontSize="20"/>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</StackPanel>
</ScrollViewer>
</Grid>
这是sales_border样式:
<Style x:Key="sales_border" TargetType="Border">
<Setter Property="Height" Value="100"/>
<Setter Property="Width" Value="100"/>
<Setter Property="Background" Value="#0a7d38"/>
<Setter Property="CornerRadius" Value="8"/>
<Setter Property="Margin" Value="5,5,0,0"/>
<Setter Property="Cursor" Value="Hand"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#00d052"/>
</Trigger>
</Style.Triggers>
</Style>
这是我用来创建这些单元格的表数据。
public hall_layout()
{
InitializeComponent();
var tablename = GetTableNames();
if (tablename.Count > 0)
{
ListViewTableBorder.ItemsSource = tablename;
}
}
private List<TableName> GetTableNames()
{
return new List<TableName>()
{
new TableName("Salon 1"),
new TableName("Salon 2"),
new TableName("Salon 3"),
new TableName("Salon 4"),
new TableName("Salon 5"),
new TableName("Salon 6"),
new TableName("Salon 7"),
new TableName("Salon 8"),
new TableName("Salon 9"),
new TableName("Salon 10"),
new TableName("Salon 11"),
new TableName("Salon 12"),
new TableName("Salon 13"),
new TableName("Salon 14"),
new TableName("Salon 15"),
new TableName("Salon 16"),
new TableName("Salon 16"),
new TableName("Salon 16"),
new TableName("Salon 16"),
new TableName("Salon 16"),
new TableName("Salon 16"),
new TableName("Salon 16"),
new TableName("Salon 16"),
new TableName("Salon 16"),
new TableName("Salon 16"),
new TableName("Salon 16"),
new TableName("Salon 16"),
};
}
任何帮助将不胜感激。
答案 0 :(得分:0)
ItemsControl
不处理SelectionChanged
,并且不具有SelectedItem
属性。相反,您可以将ListBox
与{{1}一起用作ItemsPanel
,然后使用WrapPanel
中的SelectedItem
并可以处理ListBox
。
SelectionChanged