我正在制作一个房地产管理程序,在主页上,我在WrapPanel
中列出了所有类似的属性:
现在,即使每个属性完全相同,也只是用于演示和测试多个属性。每个属性都是ObservableCollection属性中的一个不同的Property
对象(对于名称的混淆而感到遗憾),如下面的c#代码所示:
public ObservableCollection<Property> Properties { get; set; }
// ...
Property defaultProperty = new Property(/*Lots of Stuff*/);
properties.Add(defaultProperty);
properties.Add(defaultProperty);
properties.Add(defaultProperty);
properties.Add(defaultProperty);
properties.Add(defaultProperty);
Properties = properties;
然后通过itemscontrol显示这些属性(属性属性的一部分(再次抱歉)),如下所示:
<ItemsControl x:Name="wPanel" ItemsSource="{Binding Properties}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel x:Name="PropertyPanel" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border Margin="5,5,5,5" BorderBrush="Red" BorderThickness="1" HorizontalAlignment="Left" VerticalAlignment="Top">
<Grid MinWidth="350" MouseLeftButtonUp="Grid_MouseLeftButtonUp">
// Column and Row Definitions
// ...
// Three other corners of the grid
<StackPanel Grid.Row="1" Grid.Column="1" VerticalAlignment="Bottom">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="5,5,5,0" MouseLeftButtonDown="IssuesPanel_MouseLeftButtonDown" > // <-- This is the part I'm trying to get to work
<TextBlock Text="{Binding IssuesNum}" VerticalAlignment="Center"/>
<TextBlock Text=" Issues " VerticalAlignment="Center"/>
<Image VerticalAlignment="Center">
<Image.Source>
<BitmapImage UriSource="/VentureVisions;component/warning.png" DecodePixelWidth="18" />
</Image.Source>
</Image>
</StackPanel>
</StackPanel>
</Grid>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
我拿出了与此无关的部分。当用户点击右下方的问题面板时,我正在尝试打开一个关于属性问题的窗口。我已经设置了一个事件,但我需要能够获取Property对象以从中获取Problems集合以显示在窗口中。我希望这是有道理的。现在评论。但是,如何在单击按钮后知道如何引用用户正在与之交互的特定属性?谢谢。
答案 0 :(得分:1)
从使用几种不同的口味回答这个问题,请参考以下主题:
希望那些帮助。
如果您使用任何级别的数据绑定,为了进一步帮助您,您只需将“问题”图像交互绑定到“viewmodel”上的命令,在您的实例中,viewmodel将是属性对象。