wpf se une al elemento y a la propiedad

tengo el siguiente formulario:

enter image description here

lo implementé en MVVM, el XAML se ve así:

<!-- Username -->
<Label Grid.Row="2" Style="{StaticResource TypicalLabelStyle}">Username:</Label>
<TextBox Grid.Row="2" Grid.Column="1" Style="{StaticResource TypicalTextBoxStyle}" Name="UsernameTextBox"
            Text="{Binding SourceConnection.Username, UpdateSourceTrigger=PropertyChanged}" 
            />

<CheckBox Grid.Row="2" Grid.Column="2" Margin="5" VerticalAlignment="Center" Name="CopyPasswordCheckBox">Copy Password</CheckBox>

<!-- Password -->
<Label Grid.Row="3" Style="{StaticResource TypicalLabelStyle}">Password:</Label>
<TextBox Grid.Row="3"  Grid.Column="1" >
    <TextBox.Style>
        <Style>          
            <Style.Triggers>
                <DataTrigger Binding="{Binding ElementName=CopyPasswordCheckBox, Path=IsChecked}" Value="True">
                    <Setter Property="TextBox.Text" Value="{Binding ElementName=UsernameTextBox, Path=Text}" />
                </DataTrigger>
                <DataTrigger Binding="{Binding ElementName=CopyPasswordCheckBox, Path=IsChecked}" Value="False">
                    <Setter Property="TextBox.Text" Value="{Binding SourceConnection.Password}" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBox.Style>
</TextBox>

el problema está en el cuadro de texto Contraseña: si la casilla de verificación "Copiar contraseña" está marcada, entonces el enlace SourceConnection.Password está vacío. en el caso de que no esté marcado, obtengo el enlace de valor adecuado.

(la contraseña de copia significa que el texto del cuadro de texto Nombre de usuario se copiará en el cuadro de texto Contraseña). no quiero mantener una propiedad para "Copiar contraseña" en el código y luego preguntar si...".

preguntado el 22 de mayo de 12 a las 15:05

1 Respuestas

Agregaría un booleano para mantener el estado de la casilla de verificación en su modelo de vista. Luego, en el modelo de vista, puede capturar los cambios de nombre de usuario, marcar el estado de la casilla de verificación y actualizar la contraseña en consecuencia.

contestado el 22 de mayo de 12 a las 15:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.