C# 完整的数据模板可点击?
我在XAML视图中的C# 完整的数据模板可点击?,c#,xaml,windows-phone-8,mvvm,C#,Xaml,Windows Phone 8,Mvvm,我在XAML视图中的phone.LongListSelector中使用了以下数据模板: <DataTemplate x:Name="myLocationsListTemplate"> <StackPanel Margin="0,0,0,15"> <Grid VerticalAlignment="Top" Margin="0,0,5,0"> <Grid.ColumnDefini
phone.LongListSelector
中使用了以下数据模板:
<DataTemplate x:Name="myLocationsListTemplate">
<StackPanel Margin="0,0,0,15">
<Grid VerticalAlignment="Top" Margin="0,0,5,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="120" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" TextTrimming="WordEllipsis" Text="{Binding Name}" TextWrapping="NoWrap" Style="{StaticResource PhoneTextLargeStyle}" VerticalAlignment="Top" Margin="0,0,0,22" />
<Image Grid.Column="0" Width="138" Height="25" Source="/mAppData/stars-3.png" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="0"/>
<TextBlock Grid.Column="1" Text="{Binding DistanceInMeterFormatted, FallbackValue=fallback, TargetNullValue=nullvalue, Mode=OneWay}" TextWrapping="NoWrap" Style="{StaticResource PhoneTextSubtleStyle}" HorizontalAlignment="Right" Margin="0,0,-3,20" VerticalAlignment="Bottom"/>
<TextBlock Grid.Column="1" Text="vor 10 min." TextWrapping="NoWrap" Margin="0" Style="{StaticResource PhoneTextSubtleStyle}" HorizontalAlignment="Right" VerticalAlignment="Bottom"/>
</Grid>
<Grid VerticalAlignment="Top" Margin="0,10,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Width="100" Height="100" Source="{Binding PreviewImg1}"/>
<Image Grid.Column="1" Width="100" Height="100" Source="{Binding PreviewImg2}"/>
<Image Grid.Column="2" Width="100" Height="100" Source="{Binding PreviewImg3}"/>
<Image Grid.Column="3" Width="100" Height="100" Source="{Binding PreviewImg4}"/>
</Grid>
</StackPanel>
</DataTemplate>
现在我想让完整的DataTemplate内容“可点击”。方法:如果用户单击文本块或四幅图像中的一幅或模具列表中显示的任何内容,则应使用databound属性执行操作(表示应给出绑定数据中的名称
)
有什么办法可以让它工作吗?为什么不把整个模板粘贴到一个按钮上呢?如果需要删除任何不喜欢的默认外观,可以设置按钮样式。例如
<Style x:Key="BlankButtonStyle" TargetType="ButtonBase">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ButtonBase">
<ContentPresenter />
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Background" Value="Transparent" />
</Style>
使用selectedIndexchanged事件,而不是longlistselector上的任何单击事件。听起来是个非常好的主意。我现在用
将堆叠面板
附在一起。但是还有两个问题:我必须把你的代码片段放在XAML文件的什么地方?我如何在按钮的点击事件中访问绑定项?样式资源可以在资源链中的任何位置(每个元素都有一个.Resources集合)。这样的风格在整个应用程序中都很有用,所以我个人会把它放在app.xaml中。按钮具有可以绑定到viewmodel上的命令的命令属性。我会用它来代替点击事件,否则使用按钮没有意义,任何元素都可以引发点击事件将您的代码片段放在
中,编辑器在道歉中说,这些是不在Silverlight中的WPF属性。你可以把这些线去掉。谢谢。将TargetType
从ButtonBase
更改为Button
,删除了这两行,现在一切正常。