簡體   English   中英

具有AcceptsReturn = true的文本框鍵綁定

[英]Textbox KeyBinding with AcceptsReturn = true

基本上,我有一個文本框,當未選中一個復選框且選中該復選框時,我會接受返回值。我希望該文本框對我編寫的KeyBinding做出反應。

<TextBox AcceptsReturn="{Binding IsChecked, ElementName=EnterCheckbox, Converter={StaticResource InvertBooleanConverter}}" >
     <TextBox.InputBindings>
           <KeyBinding Key="Enter" Command="{Binding CmdEnterPressed}"/>
     </TextBox.InputBindings>
</TextBox >

現在無論如何,盡管事實上當我按下[Return]TextBox.AcceptsReturn都設置為True,但KeyBinding正在觸發,我不想觸發它,而是轉到下一行TB。

您可以為該命令實現CanExecute,如下所示:

public bool CanExecute(object parameter)
{
    bool acceptReturns = (bool)parameter;
    return !acceptReturns;
}

並且在您的XAML中(就CommandParameter用於Execute和CanExecute方法而言):

<KeyBinding Key="Enter" Command="{Binding CmdEnterPressed}" 
                        CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type TextBox}}, Path=AcceptsReturn}"/>

有相同的問題,建議的解決方案未解決。 這是我的解決方法。

  • 保留第一個文本框的鍵綁定不變,並創建一個幾乎完全相同的副本,減去鍵綁定,並將AcceptReturn設置為true
  • 設置/附加兩者的可視性(第二個倒數)到Checkbox isChecked屬性
  • 將文本綁定到相同的屬性

應該有一個更好的解決方法,但這對我而言是成功的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM