¿Cómo puedo pasar un parámetro del archivo de marcado xaml al constructor UserControl?
Tengo una ventana StepsWnd en la que UserControl StepProp se usa dos veces, declarada en un archivo 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>
Cuando se crea la ventana StepsWnd, el constructor StepProp se llama dos veces: para m_PrevStep y para m_CurStep.
public class StepProp : UserControl
{
public StepProp()
{
InitializeComponent();
}
//...
}
¿Cómo puedo pasar un parámetro al constructor de la clase StepProp desde el marcado de la ventana StepsWnd, para poder identificar quién llama al constructor, m_PrevStep o m_CurStep? ¿Para obtener algo como esto?
public class StepProp : UserControl
{
public StepProp(object parameter)
{
InitializeComponent();
if ((string)parameter == "PrevStep")
{
//todo somthing
}
else if ((string)Param == "CurStep")
{
//todo somthing else
}
}
//...
}