0

プロジェクトに WPF と MVVM を使用していますが、次の問題があります。Password DataGrid セルをダブルクリックして別のセルにフォーカスすると、CellTemplate の PasswordBox が空になります。一方、TextBox はその値を保持します。(これは、タブを使用する場合には発生しません。)

私のセルのXAMLコードは次のとおりです。

<DataGridTemplateColumn Header="Password">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <PasswordBox VerticalContentAlignment="Center"
                                     Focusable="False" IsEnabled="False"
                                     basics:PasswordBoxAssistant.BindPassword="True"  
                                     basics:PasswordBoxAssistant.BoundPassword="{Binding Path=Password, Mode=OneWay, ValidatesOnNotifyDataErrors=True}"/>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
                <DataGridTemplateColumn.CellEditingTemplate>
                    <DataTemplate>
                        <TextBox  VerticalContentAlignment="Center" 
                                  Text="{Binding Path=Password, ValidatesOnNotifyDataErrors=True, UpdateSourceTrigger=PropertyChanged}"/>
                    </DataTemplate>
                </DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>

PasswordBox にバインディングを使用したいので、ここで定義されているように PasswordHelper を使用しました: http://blog.functionalfun.net/2008/06/wpf-passwordbox-and-data-binding.html

私はWPFにかなり慣れていないので、オンラインで役立つものを見つけることができませんでした.

編集

PasswordBox を TextBox に変更し、コンバーターを使用して String をパスワードのように変更しました。今では正常に動作し、見たいように見えます! (そして、それも簡単です。私が使用したヘルパーと組み合わせた PasswordBox は、少しバグがあるようです。)

4

0 に答える 0