Como posso passar um parâmetro do arquivo de marcação xaml para o construtor UserControl?
Eu tenho uma janela StepsWnd na qual UserControl StepProp é usado duas vezes, declarado em um arquivo separado.
<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>
Quando a janela StepsWnd é criada, o construtor StepProp é chamado duas vezes - para m_PrevStep e m_CurStep.
public class StepProp : UserControl
{
public StepProp()
{
InitializeComponent();
}
//...
}
Como posso passar um parâmetro para o construtor da classe StepProp a partir da marcação da janela StepsWnd, para que eu possa identificar quem está chamando o construtor, m_PrevStep ou m_CurStep? Para conseguir algo assim?
public class StepProp : UserControl
{
public StepProp(object parameter)
{
InitializeComponent();
if ((string)parameter == "PrevStep")
{
//todo somthing
}
else if ((string)Param == "CurStep")
{
//todo somthing else
}
}
//...
}