【问题标题】:Silverlight DataGrid Password Text ColumnSilverlight DataGrid 密码文本列
【发布时间】:2013-04-23 16:52:53
【问题描述】:

新问题。

我在可编辑的数据网格中显示信息。但是,其中一列是数据库中的密码字段。是否可以像密码文本框控件一样屏蔽显示给用户的文本?这是网格的 XAML:(我指的是 Credentials 列)

 <sdk:DataGrid x:Name="grdApplications" 
                              HorizontalAlignment="Left" 
                              Height="570" Margin="10,39,0,0"
                              VerticalAlignment="Top" 
                              Width="1132" 
                              AlternatingRowBackground="#FFB4CDCD" 
                              AutoGenerateColumns="False" 
                              ItemsSource="{Binding Data, ElementName=Apps}" >
                    <sdk:DataGrid.Columns>
                        <sdk:DataGridTemplateColumn Header="Name">
                            <sdk:DataGridTemplateColumn.CellTemplate>
                                <DataTemplate x:Name="appTemplate">
                                    <HyperlinkButton Content="{Binding Name}" 
                                                     HorizontalAlignment="Left" 
                                                     VerticalAlignment="Center"
                                                     Foreground="#2020F0"
                                                     Click="lnkEditApp_Click" />
                                </DataTemplate>
                            </sdk:DataGridTemplateColumn.CellTemplate>
                        </sdk:DataGridTemplateColumn>
                        <sdk:DataGridTextColumn Header="Require Authentication?" Binding="{Binding Type}" />
                        <sdk:DataGridTextColumn Header="User ID" Binding="{Binding Data}" />
                        <sdk:DataGridTextColumn Header="Retry Count" Binding="{Binding Binding}" />
                        <sdk:DataGridTextColumn Header="Credentials" Binding="{Binding Url}" />
                    </sdk:DataGrid.Columns>
                </sdk:DataGrid>

谢谢。

【问题讨论】:

    标签: silverlight datagrid passwords datagridtemplatecolumn


    【解决方案1】:

    您需要找回密码还是只是为了显示?

    如果是这样,您可以尝试使用转换器:

     <sdk:DataGridTextColumn Header="Credentials" Binding="{Binding Url, Converter={StaticResource MyConverterReference}}" />
    
     <Grid.Resources>
        <c:MyConverter x:Key="MyConverterReference"/>
     </Grid.Resources>
    

    耦合:

     public class MyConverter : IValueConverter
     {
        public object Convert(object o, Type type,object parameter, CultureInfo culture)
        {
          string objectToConvert = o.ToString();
          var secure = new SecureString();
    
          foreach (char c in objectToConvert )
          {
            secure.AppendChar(c);
          }
    
          return secure;
        }
    
        public object ConvertBack(object o, Type type,object parameter, CultureInfo culture)
        {
          return null;
        }
     }
    

    【讨论】:

    • 还没有……我正在打电话……:-D
    • 好的……有几个问题。 c: 无法识别,并且 Secure String 是我假设的库,但是来自什么 System 对象?谢谢!
    • 嗯...我尝试包含 System.Security dll,但由于它不是基于 Silverlight 运行时构建的,所以我不得不即兴发挥一点。剩下要做的就是在 XAML 中定义 c:。我知道 iut 应该类似于 xmlns:c="blah blah blah" 但我不确定“blah blah blah”是什么。
    • 尝试在顶部添加这个 xmlns:c="clr-namespace:YOUR_NAMESPACE"
    猜你喜欢
    • 1970-01-01
    • 2011-10-10
    • 2010-09-14
    • 2011-01-09
    • 2011-08-04
    • 1970-01-01
    • 2011-12-16
    • 2011-06-17
    • 1970-01-01
    相关资源
    最近更新 更多