【发布时间】:2020-01-24 19:07:37
【问题描述】:
我正在使用 Caliburn.Micro 来制作 Wpf Control。我的部分 XAML 代码如下:
<ItemsControl x:Name="Devices" Grid.Row="1">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border x:Name="border"
BorderBrush="Black"
BorderThickness="0"
CornerRadius="5"
Margin="20">
<StackPanel>
<Image Source="{Binding ImageMain}" Height="200" />
<TextBlock HorizontalAlignment="Center"
Margin="0 0 0 20"
Text="{Binding Name}" />
</StackPanel>
</Border>
<DataTemplate.Triggers>
<Trigger SourceName="border" Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="BorderBrush" Value="Blue"/>
<Setter TargetName="border" Property="BorderThickness" Value="5"/>
</Trigger>
</DataTemplate.Triggers>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
而且它工作正常。现在我想要将 Click 事件添加到我的 Image 并将 Devices.deviceId 传递给事件。
我尝试了不同的方法,但它们都不起作用。任何人都可以给我一个提示吗?非常感谢。
我试过了:
...
<Button>
<Image Source="{Binding ImageMain}" Height="200" />
</Button>
但它不会显示图像。
【问题讨论】:
-
您不只是想使用 ListBox 的选择功能吗?或者只是将图像放在按钮中?
-
Devices.deviceId是什么?你能分享你的视图模型吗?其实cal:Message.Attach可以帮到你 -
它是 Devices 类的一个公共属性。它不在我的视图模型中。
标签: c# wpf caliburn.micro