2013-02-06 64 views
0

我一直在試圖弄清楚這一點,並且我很困惑。WinRT XAML如何在使用Win8nl時獲取文本框的當前文本EventToCommandBehaviour

我有以下XAML:

<TextBox x:Name="MyTextBox" Text="{Binding MyName, Mode=TwoWay}" Width="200"> 
      <WinRtBehaviors:Interaction.Behaviors> 
       <Win8nl_Behavior:EventToCommandBehavior Event="TextChanged" 
                 Command="TextChangedCommand" 
                 CommandParameter="{Binding Text, ElementName=MyTextBox, Mode=OneWay}"/> 
      </WinRtBehaviors:Interaction.Behaviors> 

     </TextBox> 

在我看來,型號:

 public ICommand TextChangedCommand 
    { 
     get 
     { 
      return new RelayCommand<string>((p) => 
      { 
       var msg = new MessageDialog(string.Format("Hi there {0}", p)); 
       msg.ShowAsync(); 
      }); 
     } 
    } 

但我希望能出現在CommanParameter(P)的字符串值始終爲空。

我在做什麼錯?

回答

1

行爲不是Visual Tree的一部分,所以他們無法訪問XAML範圍和執行ElementName綁定的功能。這blog post提供了更多的細節和一個合適的解決方案。

2

您可以做的最好的事情就是將文本值作爲CommandParameter傳入。

相關問題