我有一个接受数据输入的OK按钮,但是用户可以更改一些数据并再次按下它。每次按下都会保存特定配置。
我希望OK按钮上的选择消失,以便用户知道它已被接受。
理想情况下,我想要一个纯WPF解决方案。
更新:部分代码
<ControlTemplate x:Key="MapCutIconsTemplate">
<DockPanel DockPanel.Dock="Right">
<controls:ImageButton Style="{DynamicResource ButtonStyle}"
Content="OK"
DockPanel.Dock="Top"
Command="{Binding AcceptPositionCommand}"
Source="{DynamicResource OkIcon}"
Background="{DynamicResource BackgroundColour}"/>
<controls:ImageButton Style="{DynamicResource ButtonStyle}"
Content="Back"
DockPanel.Dock="Top"
Command="{Binding BackCommand}"
Source="{DynamicResource BackIcon}"
Background="{DynamicResource BackgroundColour}"/>
</DockPanel>
</ControlTemplate>
单击确定按钮后,我想将选择从“确定”按钮移动到“返回”按钮。
更新2:越来越近
CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"
这会给我一个按下的按钮,作为参数传递给Command函数。我真正需要的是另一个按钮对象。
解决方案:
CommandParameter="{Binding ElementName=CutBack}"
答案 0 :(得分:0)
请使用以下代码更改xaml
:
<ControlTemplate x:Key="MapCutIconsTemplate">
<DockPanel DockPanel.Dock="Right">
<controls:ImageButton Name="acceptButton"
Style="{DynamicResource ButtonStyle}"
Content="OK"
DockPanel.Dock="Top"
Command="{Binding AcceptPositionCommand}"
CommandParameter="{Binding ElementName=backButton}"
Source="{DynamicResource OkIcon}"
Background="{DynamicResource BackgroundColour}"/>
<controls:ImageButton Name="backButton"
Style="{DynamicResource ButtonStyle}"
Content="Back"
DockPanel.Dock="Top"
Command="{Binding BackCommand}"
Source="{DynamicResource BackIcon}"
Background="{DynamicResource BackgroundColour}"/>
</DockPanel>
</ControlTemplate>
并且,您的 ViewModel的AcceptPositionCommand.OnExecute 包含在以下行中:
(parameter as Button).Focus(); //Will move focus to Back Button