2016-11-18 8 views
0

Здравствуйте мне нужно создать часть моего стола быть как PasswordBox (я имею в виду, текст должен быть скрыть, используя, например, *)WPF TABLE МОДИФИКАЦИЯ -Textblock как PasswordBox

Это часть моего стола

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

, когда я добавлю, например, «кошку», я получу явный кот, но я хочу получить ***, а затем, если я буду ссылаться на эту часть таблицы, я хочу получить эту «кошку»

thx для справки

+0

Вы можете использовать конвертер вместо 'Text =" {Binding Path = Password} "', который возвращает строку равной длины с строкой Bound. –

ответ

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=^}" />