0

こんにちは、テーブルの一部をパスワードボックスのように作成する必要があります (つまり、テキストは、たとえば * を使用して非表示にする必要があります)

これは私のテーブルの一部です

                      <GridViewColumn Header="Password" Width="80">
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <TextBlock HorizontalAlignment="Center" Text="{Binding Path=Password}"  Foreground="Black"></TextBlock>
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>

たとえば「猫」を追加すると、明示的な猫が得られますが、***を取得したいので、テーブルのこの部分を参照する場合は、この「猫」を取得したい

助けてthx

4

1 に答える 1

0

各行に一定量の星を表示しないのはなぜですか? これにより、パスワードの長さなどの情報が明らかになりません。星の数がパスワードの長さと等しいかどうかは、決して表示されない場合に本当に問題になりますか?

<TextBlock HorizontalAlignment="Center" Text="****"  Foreground="Black"></TextBlock>

一致する長さが必要な場合は、同様のコンバーターを記述します。

public class StarsConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (value == null) return null;
        var paswordLength = (value as string).Length;
        var symbol = (parameter ?? "*").ToString().First();
        return new string(symbol, paswordLength);
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

XAML では、パスワードを表示するために使用されるシンボルを含む追加のパラメーターを指定できますが、デフォルトでは*

 <TextBlock Text="{Binding pass,Converter={StaticResource ResourceKey=passConverter},ConverterParameter=^}" />
于 2016-11-18T22:40:42.373 に答える