Can someone please explain to me, in idiot-level detail, how you are supposed to use the Popup and PopupManager classes?
But how do we use the PopupManager to access PopupMedia and PopupExpressions?
Popups are generally defined when creating your map, and defines how a feature should be displayed. Usually these are authored when publishing your webmap.
You can think of the PopupManager as the ViewModel for the popup+feature instance. It helps you generate the view of the popup, formatting values for view etc. For instance a simple way to render the popup fields can be done like this:
<SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><</SPAN>ItemsControl</SPAN> <SPAN class="attr-name token">ItemsSource</SPAN><SPAN class="attr-value token"><SPAN class="punctuation token">=</SPAN><SPAN class="punctuation token">"</SPAN>{Binding DisplayedFields}<SPAN class="punctuation token">"</SPAN></SPAN><SPAN class="punctuation token">></SPAN></SPAN> <ItemsControl.ItemTemplate> <SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><</SPAN>DataTemplate</SPAN><SPAN class="punctuation token">></SPAN></SPAN> <SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><</SPAN>StackPanel</SPAN><SPAN class="punctuation token">></SPAN></SPAN> <TextBlock Text="{Binding Field.Label}" FontWeight="Bold"\ /> <SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><</SPAN>TextBox</SPAN> <SPAN class="attr-name token">IsEnabled</SPAN><SPAN class="attr-value token"><SPAN class="punctuation token">=</SPAN><SPAN class="punctuation token">"</SPAN>false<SPAN class="punctuation token">"</SPAN></SPAN> <SPAN class="attr-name token">Text</SPAN><SPAN class="attr-value token"><SPAN class="punctuation token">=</SPAN><SPAN class="punctuation token">"</SPAN>{Binding FormattedValue, Mode<SPAN class="punctuation token">=</SPAN>OneWay}<SPAN class="punctuation token">"</SPAN></SPAN> <SPAN class="attr-name token">BorderThickness</SPAN><SPAN class="attr-value token"><SPAN class="punctuation token">=</SPAN><SPAN class="punctuation token">"</SPAN>0<SPAN class="punctuation token">"</SPAN></SPAN> <SPAN class="punctuation token">/></SPAN></SPAN> <SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"></</SPAN>StackPanel</SPAN><SPAN class="punctuation token">></SPAN></SPAN> <SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"></</SPAN>DataTemplate</SPAN><SPAN class="punctuation token">></SPAN></SPAN> </ItemsControl.ItemTemplate> <SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"></</SPAN>ItemsControl</SPAN><SPAN class="punctuation token">></SPAN></SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>
If you want to edit a feature, you could bind to the editable fields:
<SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><</SPAN>ItemsControl</SPAN> <SPAN class="attr-name token">ItemsSource</SPAN><SPAN class="attr-value token"><SPAN class="punctuation token">=</SPAN><SPAN class="punctuation token">"</SPAN>{Binding EditableDisplayFields}<SPAN class="punctuation token">"</SPAN></SPAN><SPAN class="punctuation token">></SPAN></SPAN> <ItemsControl.ItemTemplate> <SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><</SPAN>DataTemplate</SPAN><SPAN class="punctuation token">></SPAN></SPAN> <SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><</SPAN>StackPanel</SPAN><SPAN class="punctuation token">></SPAN></SPAN> <SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><</SPAN>TextBlock</SPAN> <SPAN class="attr-name token">Text</SPAN><SPAN class="attr-value token"><SPAN class="punctuation token">=</SPAN><SPAN class="punctuation token">"</SPAN>{Binding Field.Label}<SPAN class="punctuation token">"</SPAN></SPAN> <SPAN class="attr-name token">FontWeight</SPAN><SPAN class="attr-value token"><SPAN class="punctuation token">=</SPAN><SPAN class="punctuation token">"</SPAN>Bold<SPAN class="punctuation token">"</SPAN></SPAN> <SPAN class="punctuation token">/></SPAN></SPAN> <SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><</SPAN>TextBox</SPAN> <SPAN class="attr-name token">Text</SPAN><SPAN class="attr-value token"><SPAN class="punctuation token">=</SPAN><SPAN class="punctuation token">"</SPAN>{Binding Value, Mode<SPAN class="punctuation token">=</SPAN>TwoWay}<SPAN class="punctuation token">"</SPAN></SPAN> <SPAN class="attr-name token">BorderBrush</SPAN><SPAN class="attr-value token"><SPAN class="punctuation token">=</SPAN><SPAN class="punctuation token">"</SPAN>Red<SPAN class="punctuation token">"</SPAN></SPAN><SPAN class="punctuation token">></SPAN></SPAN> <TextBox.Style> <SPAN class="language-css style token"><SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><</SPAN>Style</SPAN> <SPAN class="attr-name token">TargetType</SPAN><SPAN class="attr-value token"><SPAN class="punctuation token">=</SPAN><SPAN class="punctuation token">"</SPAN>TextBox<SPAN class="punctuation token">"</SPAN></SPAN><SPAN class="punctuation token">></SPAN></SPAN> <SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><</SPAN>Style.Triggers</SPAN><SPAN class="punctuation token">></SPAN></SPAN> <SPAN class="selector token"><DataTrigger Binding="</SPAN><SPAN class="punctuation token">{</SPAN>Binding ValidationError<SPAN class="punctuation token">}</SPAN><SPAN class="selector token">" Value="</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="property token">x</SPAN><SPAN class="punctuation token">:</SPAN>Null<SPAN class="punctuation token">}</SPAN>"> <Setter Property=<SPAN class="string token">"BorderBrush"</SPAN> Value=<SPAN class="string token">"Black"</SPAN> /> </DataTrigger> </Style.Triggers> <SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"></</SPAN>Style</SPAN><SPAN class="punctuation token">></SPAN></SPAN></SPAN> </TextBox.Style> <SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"></</SPAN>TextBox</SPAN><SPAN class="punctuation token">></SPAN></SPAN> <SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"></</SPAN>StackPanel</SPAN><SPAN class="punctuation token">></SPAN></SPAN> <SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"></</SPAN>DataTemplate</SPAN><SPAN class="punctuation token">></SPAN></SPAN> </ItemsControl.ItemTemplate> <SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"></</SPAN>ItemsControl</SPAN><SPAN class="punctuation token">></SPAN></SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>
サインインしたメンバーは投稿、更新のフォローなどができます。初めてですか?無料アカウントを登録してください。
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.