Sim*_*ams 2 xaml win-universal-app
我的 Windows 通用页面上有一个 ListView。我使用 UserControl 来定义我的 ItemTemplate,以便我可以使用relativepanel 和 VisualStateManager 来控制我的项目根据屏幕尺寸的显示方式...
<ListView ItemsSource="{Binding Path=AllThings}"
ItemContainerStyle="{StaticResource ListViewItemStyle}">
<ListView.ItemTemplate>
<DataTemplate>
<local:CrossingControl />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Run Code Online (Sandbox Code Playgroud)
我的 UserControl 中有一个按钮,我想将其 Command 绑定到 ViewModel 中的命令属性,该属性是列表本身的 DataContext ...
<UserControl ...>
<RelativePanel>
<StackPanel x:Name="crossedEntryPanel">
<Button Command="{Binding DataContext.DeleteCommand,
RelativeSource={RelativeSource Mode=TemplatedParent}}"
CommandParameter="{Binding}"
Run Code Online (Sandbox Code Playgroud)
我尝试过使用 ElementName 绑定,但它似乎不起作用(我想是因为我的 listview 元素名称是在另一个 xaml 文件中定义的)。我也尝试过上面的RelativeSource 绑定,但这似乎也不起作用。我怎样才能正确绑定它?
您可以使用属性Tag来保存并在中使用它DataContextListViewUserControl
这是如何完成的
<ListView ItemsSource="{Binding Path=AllThings}" x:Name="listview"
ItemContainerStyle="{StaticResource ListViewItemStyle}">
<ListView.ItemTemplate>
<DataTemplate>
<local:CrossingControl Tag="{Binding DataContext,ElementName=listview}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<UserControl x:Name="usercontrol" ...>
<RelativePanel>
<StackPanel x:Name="crossedEntryPanel">
<Button Command="{Binding Tag.DeleteCommand,ElementName=usercontrol}"
CommandParameter="{Binding}"
Run Code Online (Sandbox Code Playgroud)
relativeSource={RelativeSourceMode=TemplatedParent}}":-controltemplate这指向button
| 归档时间: |
|
| 查看次数: |
1021 次 |
| 最近记录: |