WPF导航参数绑定
本文关键字:绑定 参数 导航 WPF | 更新日期: 2023-09-27 18:13:29
你好,我有这个xaml
<dxui:PageAdornerControl Header="Details" DataContext="{Binding SelectedItem}">
<dxui:PageAdornerControl.HeaderTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Grid.Column="1" >
<dxui:NavigationButton FontSize="14" Margin="10, 0, 0, 0" Content="Customers" NavigateTo="CustomersPage"/>
<dxui:NavigationButton FontSize="14" Margin="10, 0, 0, 0" Content="Categorys" NavigateTo="CategorysPage"/>
<dxui:NavigationButton FontSize="14" Margin="10, 0, 0, 0" Content="Products" NavigateTo="GroupedItemsPage" NavigationParameter="{Binding Title}"/>
</StackPanel>
</Grid>
</DataTemplate>
</dxui:PageAdornerControl.HeaderTemplate>
<dxlc:LayoutControl Padding="40, 10, 40, 10" ItemSpace="20">
<dxlc:LayoutGroup Orientation="Vertical" ItemSpace="10" VerticalAlignment="Top" HorizontalAlignment="Left">
<TextBlock Text="{Binding Title}" FontSize="20" IsHyphenationEnabled="True"/>
<TextBlock Text="{Binding Subtitle}" FontSize="16"/>
<Image Source="{Binding Image}"/>
</dxlc:LayoutGroup>
<dxlc:LayoutGroup Orientation="Vertical">
<TextBlock Text="{Binding Description}" TextWrapping="Wrap" FontSize="16" Margin="0,70,0,0" Height="20"/>
<TextBlock Text="{Binding Content}" TextWrapping="Wrap" FontSize="16" Margin="0,0,0,0"/>
</dxlc:LayoutGroup>
</dxlc:LayoutControl>
</dxui:PageAdornerControl>
textblock和Images的绑定工作得很好,但当我试图将标题绑定到NavigationParameter时,它不起作用,并发送空参数。
问题的原因是您设置了PageAdornerControl。标题属性。这个值被转发给PageAdornerControl。HeaderTemplate和NavigationButtons DataContext。这就是绑定不起作用的原因。
你可以清除Header属性(它实际上并没有在你的HeaderTemplate中使用)或者将它绑定到SelectedItem属性。作为替代,您可以使用RelativeSource绑定:
NavigationParameter="{Binding Path=DataContext.SelectedItem.Title, RelativeSource={RelativeSource AncestorType={x:Type dxui:PageAdornerControl}}}