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

本文关键字:依赖 属性 设置 方式 编程 | 更新日期: 2023-09-27 18:27:06

考虑这个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);
}

因此,我需要在代码中设置dependency属性。我该怎么做?

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

您要问的是如何在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));