var winFillCode = new View.FillCode(this.CodeFile);
winFillCode.Owner = this.WIN;
var result = winFillCode.ShowDialog();这里返回的是一个bool?型的数据
那我要得到一个字符型的话
一般我是在
FillCode这里声明一个public string ResultMessage{get;set;}来给窗口返回时winFillCode.ResultMessage得到值但是现在MVVM中,这个返回值是写到ViewModel去的,
那是不是我得在FileCode中声明如public FillCodeViewModel ViewModel{get;set;}
public BaiduTieba()
{
   InitializeComponent();
   this.ViewModel= new FillCodeViewModel()
   this.DataContext = this.ViewModel;
}然后窗口调用完后用winFillCode.ViewModel.ResultMessage标准做法应该是怎么做的?谢谢

解决方案 »

  1.   

    没有很看明白问题。是不是要这样做: public class FillCode : Window
    {
    private string _codeFile;
    public FillCode(Window owner, string codeFile)
    {
    this.Owner = owner;
    _codeFile = codeFile;
    }

    public new string ShowDialog()
    {
    var result = base.ShowDialog();
    string resultMessage = GetResultMessage(result);
    return resultMessage;
    } private string GetResultMessage(bool? result)
    {
    // 根据result转成字符串
    }
    }
      

  2.   

    你的那个Window构造函数里传递Model不就可以了吗?返回值类型是改不了的,要通过其它方式传递对象交互。
      

  3.   


    public new string ShowDialog()     
    {
             var result = base.ShowDialog();
             string resultMessage = GetResultMessage(result);
             return resultMessage;
         }  看到这一句,我突然间就想起自己怎么没有想到重写呢
    哈哈
    谢谢