Обратите внимание, что значение свойства не будет доступно в конструкторе, хотя экземпляр должен быть создан до того, как обработчик XAML сможет фактически установить свойство.
я есть окно StepsWnd, в котором UserControl StepProp используется дважды, объявленный в отдельном файле.
<Window x:Class="MyProject.StepsWnd"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:c1="http://schemas.componentone.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MyProject"
Height="550" Width="850">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<local:StepProp Grid.Column="0" DataContext="{Binding Path=PrevStepVM}" x:Name="m_PrevStep"/>
<local:StepProp Grid.Column="1" DataContext="{Binding Path=CurStepVM}" x:Name="m_CurStep"/>
</Grid>
</Window>
Когда окно StepsWnd создано, конструктор StepProp вызывается дважды - для m_PrevStep и для m_CurStep.
public class StepProp : UserControl
{
public StepProp()
{
InitializeComponent();
}
//...
}
Как передать параметр конструктору класса StepProp из разметки окна StepsWnd, чтобы я мог определить, кто вызывает конструктор, m_PrevStep или m_CurStep? Чтобы получить что-то подобное?
public class StepProp : UserControl
{
public StepProp(object parameter)
{
InitializeComponent();
if ((string)parameter == "PrevStep")
{
//todo somthing
}
else if ((string)Param == "CurStep")
{
//todo somthing else
}
}
//...
}