シルバーライトの開発者が既に知っているように、 のbingマップには、地図の右のズームレベルを計算するsetviewというメソッドが含まれています。silverlight、C#、XAMLの特別なコントロールを追加
私自身MVVMフレームワークを使ってマップアプリケーションを構築しました。私は自分のマップにもsetviewメソッドを使いたい。しかし、私はMVVMでアプリケーションを構築したので、viewmodelはmap.xamlについて何も知らないので、viewmodelでsetviewを使うのは良いことではありません。
私はマップUIでXAMLを持っています。 mapcontent.csというビューモデルにXAMLを接続しました。 mapcontent.cs、と呼ばれるのviewmodelで
、私はこのような性質を持っている:
public LocationRect MapArea {
get { return new LocationRect(new Location(52.716610, 6.921160), new Location(52.718330, 6.925840)); }
}
は、今私はsetviewコマンドを使用したいが、これはMVVMで設定。 は、だから私はMapクラスの余分な制御作成:
namespace Markarian.ViewModels.Silverlight.Controls {
/// <summary>
/// Map control class
/// </summary>
public class Map: MC.Map {
/// <summary>
/// Initializes a new instance of the Map class.
/// </summary>
public Map() {
}
/// <summary>
/// gets and sets setview.
/// </summary>
public MC.LocationRect ViewArea { get; set; } <<<setview will come here
}
}
を今すぐ解決策は、私は私のXAMLでViewAreaを使用してMapAreaとそれを結合できることになります。 唯一の問題は、XAMLでViewareaプロパティを使用できないことです。その理由を知っていますか?