gpt4 book ai didi

c# - 如何将数据从 View 传递到 View 模型

转载 作者:行者123 更新时间:2023-12-03 10:59:36 25 4
gpt4 key购买 nike

我是 mvvm 的新手,我想将 textbox.text 作为输入传递给服务方法,该方法应该在按钮单击中调用。为此,我编写了以下代码,但无法检索文本框值。
命令.cs:

 private Action<object> _action;
public Commands(Action<object> action)
{
_action = action;
}

public event EventHandler CanExecuteChanged;

public bool CanExecute(object parameter)
{
return true;
}



public void Execute(object parameter)
{
if (parameter != null)
{
_action(parameter);

}
else
{
_action("Hello World");
}

}

CommentsandRatingViewModel:
   private ICommand _submitButtonCommand;
CommentesAndRating model;
private string Comments;
public string _Comments
{
get
{
// return model._Comments;
return Comments;
}
set
{
//model._Comments = value;
Comments = value;
}
}

public string Rating;
#region Methods

//place this command name in the any of view control's commnad
//like under submitbutton click of Submit Button in Comment.xaml
public ICommand SubmitButtonCommand
{
get
{

return _submitButtonCommand;
}
set
{
_submitButtonCommand = value;
}
}

public CommentsandRatingViewModel()
{
// this.model = new CommentesAndRating();
SubmitButtonCommand = new Commands(new Action<object>(SubmitCommentsAndRatings));
}

public void SubmitCommentsAndRatings(object obj)
{
var commnets = _Comments;
MessageBox.Show("hello");
//have to call service method here.
}

xaml:

<Grid x:Name="LayoutRoot" Background="{StaticResource PhoneChromeBrush}">
<TextBox HorizontalAlignment="Left" Name="txt" Text="{Binding Source= {StaticResource viewmodel},Mode=TwoWay,Path=_Comments}" Height="72" Margin="14,96,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="456"/>
<Button Command="{Binding SubmitButtonCommand}" Content="Button" HorizontalAlignment="Left" Margin="119,249,0,0" VerticalAlignment="Top"/>
</Grid>

最佳答案

您需要执行 INotifyPropertyChanged使您的绑定(bind)工作的界面。
之后您可以使用属性 _Comment获取您的服务方法所需的值。

作为旁注:不要在您的属性名称前加上下划线。
这会让很多阅读您的代码的人感到困惑。
更好的是在 C# 中使用区分大小写:

    private string comments;
public string Comments
{
...
}

但是如果你真的觉得有必要使用下划线,那么将它用于你的支持字段,而不是你的属性。

关于c# - 如何将数据从 View 传递到 View 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20142933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com