0

我正在使用 MVVM 并且在我的数据库中有一个字段是一个字符串并表示一个坐标。在屏幕上,我想将其分解为坐标部分,以便于用户进行编辑。到目前为止,我有一堂课可以帮助:

public class Coord
{
    public int LatDegree {get;set;}
    public int LatMinute {get;set;}
    public int LatSecond {get;set;}
    public char Latitude {get;set;}
    public int LonDegree {get;set;}
    public int LonMinute {get;set;}
    public int LonSecond {get;set;}
    public char Longitude {get;set;}

    public Coord(string coord)
    {
            string[] coordAsString =coord.Split(' ');
            this.LatDegree=Int32.Parse(coordAsString[0]);
            this.LatMinute=Int32.Parse(coordAsString[1]);
            this.LatSecond=Int32.Parse(coordAsString[2]);
          this.Latitude = (coordAsString[3].ToCharArray())[0];
            this.LonDegree = Int32.Parse(coordAsString[4]);
            this.LonMinute = Int32.Parse(coordAsString[5]);
          this.LonSecond = Int32.Parse(coordAsString[6]);
          this.Longitude = (coordAsString[7].ToCharArray())[0];
    }

    public override string ToString()
    {
        string asString = String.Format(...//omitted for brevity
        return asString;
    }
}

在我的视图模型中

            private Coord relativeGridOrigin;
    private Coord RelativeGridOrigin
    {
        get 
        {
            if(relativeGridOrigin==null)
            {
                relativeGridOrigin = new Coord(myMainObject.relativeGridOrigin);
            }
            return relativeGridOrigin;
        }
        set
        {
            relativeGridOrigin = value;
            myMainObject.relativeGridOrigin = relativeGridOrigin.ToString();
        }
    }

我目前将纬度度控制绑定到:

            public int LatitudeDegree
    {
        get { return RelativeGridOrigin.LatDegree; }
        set
        {
            RelativeGridOrigin.LatDegree = value;
            myMainObject.relativeGridOrigin = relativeGridOrigin.ToString();
        }
    }

但我不想要那个 LatitudeDegree 包装器(以及我需要的其他 7 个) - 我只想将控件绑定到我的 Coord 对象中的 LatDegree,但我需要 myMainObject.relativeGridOrigin 随时更改这 8 个值之一更改_我想我希望调用RelativeGridOrigin 设置器。我想我要么需要将 RelativeGridOrigin 设置器传递给 Coord 类,要么让我的视图模型监听 Co​​ord 类的属性更改,但我不知道该怎么做,或者是否有另一种更好的方法。

4

1 回答 1

0

按照这个对我的MVVM 模式和依赖子项的另一个问题的回答之后, 我意识到只要任何 Coord 设置器更改值并且 VM 可以监听它并更新主对象时只引发一个事件就更简洁了

于 2012-04-27T15:27:38.857 回答