无法将值与命令参数绑定

我需要从Text中的TextBox标记中获得SubmitCommand值 但我只会得到一个空值。请帮助我找出在MessageBox中显示文本所需的操作。

<UserControl>
   <Grid>
      <StackPanel
         Grid.Row="1"
         Grid.Column="1"
         Margin="0"
         FocusManager.IsFocusScope="true">
         <TextBox
            Name="linkTb"   
            DataContext="{Binding SelectedSite}"                  
            IsManipulationEnabled="True"
            TabIndex="0" />
         <StackPanel                    
            Orientation="Horizontal">
            <Button
               x:Name="submitButton"                        
               Command="{Binding SubmitCommand}"
               commandparameter="{Binding SelectedSite}"
               Content="Submit"/>
   </Grid>
</UserControl>

我在这里找不到TextBox的文本:

public class LoginViewModel : MainViewModelBase
{
   private string selectedSite;
   public LoginViewModel(Navigationmanager navigationmanager) : base(navigationmanager)
   {
      SubmitCommand = new RelayCommand(obj => Submit());
   }
   public RelayCommand SubmitCommand { get; set; }
   public string SelectedSite
   {
      get { return selectedSite; }
      set
      {
         selectedSite = value;
      }
   }
   public void Submit()
   {
      MessageBox.Show(SelectedSite);
      Navigationmanager.Navigate(NavigationKeys.Main);
   }
}

此屏幕快照显示了我的空MessageBox,其中应包含文本:

无法将值与命令参数绑定

iCMS 回答:无法将值与命令参数绑定

绑定Text属性并将源属性(UpdateSourceTrigger)的PropertyChanged设置为SelectedSite,以在每个按键上进行设置:

<TextBox
    Name="linkTb"   
    Text="{Binding SelectedSite,UpdateSourceTrigger=PropertyChanged}"                  
    IsManipulationEnabled="True"
    TabIndex="0" />

由于TextBox应该更新source属性,因此无需将其作为参数传递给命令,因此可以删除此属性:

CommandParameter="{Binding SelectedSite}"
本文链接:https://www.f2er.com/1662902.html

大家都在问