J'ai un UserControl appelé SmartForm qui a un DependencyProperty appelé Statut. Dans mon Window1.xaml, j'ai l'élément <local:SmartForm Status="Ready"/>
.Comment puis-je accéder aux valeurs DependencyProperty à partir de mon constructeur code-behind?
Je penserais alors dans le constructeur de l'objet SmartForm, que Status serait égal à "Ready" mais à la place il est égal à null.
Pourquoi alors la valeur de la propriété Status NULL dans le constructeur de SmartForm?
Si ce n'est pas dans le constructeur UserControl, quand puis-je avoir accès à la valeur, alors?
Window1.xaml:
<Window x:Class="TestPropertyDefine23282.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:TestPropertyDefine23282"
Title="Window1" Height="300" Width="300">
<Grid>
<local:SmartForm Status="Ready"/>
</Grid>
</Window>
SmartForm.xaml:
<UserControl x:Class="TestPropertyDefine23282.SmartForm"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="300" Width="300">
<Grid>
<TextBlock x:Name="TestingMessage"/>
</Grid>
</UserControl>
SmartForm.xaml.cs:
using System.Windows;
using System.Windows.Controls;
namespace TestPropertyDefine23282
{
public partial class SmartForm : UserControl
{
public SmartForm()
{
InitializeComponent();
TestingMessage.Text = Status; //WHY IS STATUS NOT YET SET HERE?
}
#region DependencyProperty: Status
public string Status
{
get
{
return (string)GetValue(StatusProperty);
}
set
{
SetValue(StatusProperty, value);
}
}
public static readonly DependencyProperty StatusProperty =
DependencyProperty.Register("Status", typeof(string), typeof(SmartForm),
new FrameworkPropertyMetadata());
#endregion
}
}
Pour répondre à la question: La valeur est disponible en cas onLoaded. –