我正在嘗試更改我的 Xamarin Forms 應(yīng)用程序(使用 Mapsui 和 Prism)中的 MapView,因為我需要單獨的視圖來存儲 Pins。第一個 MapView(我們稱之為default)用于顯示列表中的所有引腳。第二個 MapView ( history) 用于顯示新的圖釘,這些圖釘在離開頁面時被移除。我必須Dictionary存儲我的 MapViews 才能輕松訪問我想要的任何視圖。每個創(chuàng)建的 MapView 都有相同的 Map 實例。我想從which should hide pins that added in view更改default為。historydefault我用這個改變觀點:public void ChangeView(string name) { var prev = MapView; loggerService.Info($"Pins: {prev.Pins.Count}"); MapView = GetView(name); // Current MapView in XAML, returns instance of MapView loggerService.Info($"New view pins: {MapView.Pins.Count}"); Task.Factory.StartNew(() => { Task.Delay(2000).Wait(); loggerService.Info($"View pins: {MapView.Pins.Count}"); }); MapView.Refresh(); }帶有日志的額外代碼用于調(diào)試目的 - 它顯示正確的值(prev pins = 7,new pins = 0,view pins = 0)。我添加了history不帶縮放按鈕的視圖,以確保它正在發(fā)生變化——而且確實發(fā)生了變化(所以我認為沒有必要發(fā)布 XAML)。我應(yīng)該如何更改 MapView 以在導航到歷史記錄時隱藏圖釘并在切換回默認視圖時顯示它們?或者是否有更好的方法來“分組”Pin 并根據(jù)名稱隱藏/顯示它們?更新 我認為這可能很重要:public Pin AddMarker(Position point) { var pin = new Pin(MapView) { Label = "PinType.Pin", Position = point, Type = PinType.Pin, Transparency = 0.5f, Color = Xamarin.Forms.Color.FromRgb(2, 144, 210), Scale = 0.5f, }; MapView.Pins.Add(pin); return pin; }這是我添加 Pin 圖以查看的方式。這個和上面的MapView是一樣的(所有代碼都來自于MapService)。
如何用單獨的 Pin 替換 MapView?
料青山看我應(yīng)如是
2022-11-21 21:23:04
