如何以编程方式设置依赖属性值?
问题描述:
考虑这个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));