Pregunta

Tengo esta funcionalidad Goto en mi DataGrid.Esta funcionalidad, me gustaría mantener fuera de mi visualdel y fuera de código, por lo que el siguiente archivo adjunto podría ser perfecto, sin embargo ...

El usuario ingresa un número de línea (elemento) y cuando el usuario hace clic en el gotoButton que lleva al artículo a la vista.

<Grid>
    <TextBox x:Name="GotoTextbox"  Text="{Binding GotoLineNumber, UpdateSourceTrigger=PropertyChanged}" />
    <Button Name="GotoButton" >
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="Click">
                <helpers:TargetedTriggerActionGotoButton TargetObject="{Binding ElementName=GenericDataGrid}"  />
            </i:EventTrigger>
        </i:Interaction.Triggers>
    </Button>
</Grid>

Aquí está la clase deTrayedTriggeraction.

public class TargetedTriggerActionGotoButton : TargetedTriggerAction<DataGrid>
{
    protected override void Invoke(object parameter)
    {
        this.Target.SelectedGridItem = GotoLineNumber - 1;
        this.Target.SelectedGridIndex = GotoLineNumber.GetValueOrDefault() - 1;
    }
}

Me gustaría pasar de alguna manera el texto desde gototextbox, ¿hay alguna vinculación que pueda hacer?¿Cómo podría lograr esto?

¿Fue útil?

Solución

Como hablamos en comentarios
Para permitir que se pasen los parámetros, uno debe implementar una propiedad adicional en su TargetedTriggerAction

public class TargetedTriggerActionGotoButton : TargetedTriggerAction<DataGrid>
{
    protected override void Invoke()
    {
        this.Target.SelectedGridItem = GotoLineNumber - 1;
        this.Target.SelectedGridIndex = GotoLineNumber.GetValueOrDefault() - 1;
    }
    //property used as parameter
    public object Parameter {get;set;}
}

y luego en su xaml

<Grid>
<TextBox x:Name="GotoTextbox"  Text="{Binding GotoLineNumber, UpdateSourceTrigger=PropertyChanged}" />
<Button Name="GotoButton" >
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="Click">
            <helpers:TargetedTriggerActionGotoButton TargetObject="{Binding ElementName=GenericDataGrid}" Parameter="{Binding ElementName="/*desiredName*/",Path="/*neededValue*/"}" />
        </i:EventTrigger>
    </i:Interaction.Triggers>
</Button>

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top