#1,142 – Setting Attached Property Value from Code
August 22, 2014 1 Comment
You can change the value of an attached property for a given control from code by using the SetValue or SetCurrentValue methods. You call these methods on the control that the property is attached to, passing in a reference to the property and the new value. (SetCurrentValue is preferred, to avoid overwriting a local value).
Below, we set a value for MyAttProps.Important in XAML, but also wire up a Click event to allow changing the value from code.
<Label x:Name="lblHi" Content="Hi there" loc:MyAttProps.Important="True" Background="AliceBlue"/> <Button Content="Change Content" Click="Button_Click"/>
In the code-behind, we use SetCurrentValue to change the value.
private void Button_Click(object sender, RoutedEventArgs e) { bool impValue = (bool)lblHi.GetValue(MyAttProps.ImportantProperty); lblHi.SetCurrentValue(MyAttProps.ImportantProperty, !impValue); }