如何以编程方式设置依赖属性值?

问题描述:

考虑这个XAML:如何以编程方式设置依赖属性值?

<esri:ElementLayer Name="ElementLayer"> 
    <esri:ElementLayer.Children> 

     <!--Editable textbox--> 
     <TextBox Width="100" Height="20" esri:ElementLayer.Envelope="40,0,40,0" 
      Text="Editable text" HorizontalAlignment="Right" VerticalAlignment="Bottom" /> 
    </esri:ElementLayer.Children> 
</esri:ElementLayer> 

我想在代码重写本。我到目前为止:

var customLayer = this.mapControl.Layers["ElementLayer"] as ElementLayer; 
if (customLayer == null) return; 

foreach (var customMapItem in this.CustomLayerData) 
{ 
    var tb = new TextBox(); 
    tb.DataContext = customMapItem; 
    // TODO: How to set esri:ElementLayer.Envelope="40,0,40,0" ??? 
    customLayer.Children.Add(tb); 
} 

所以,我需要在代码中设置依赖属性。我怎样才能做到这一点?

你在问什么是如何在DependencyObject上设置附加DependencyProperty的值。

的基本语法是这样的:

DependencyObject.SetValue(DependencyProperty, myValue); 

在你的情况,这将是这样的:

customMapItem.SetValue(ElementLayer.EnvelopeProperty, new Envelope(40,0,40,0)); 

然而,他们也实现了一个标准的辅助功能,所以这里是一个更好的方法来做到这一点:

ElementLayer.SetEnvelope(customMapItem, new Envelope(40,0,40,0));