Как в Silverlight можно сохранить содержимое пользовательского элемента управления полностью закрытым? - PullRequest
3 голосов
/ 01 июля 2011

Я создаю пользовательский элемент управления для хранения информации о кредитной карте, предоставленной пользователем. Элемент управления собирает номер счета, срок действия и CCV.

Я хочу, чтобы единственным выходом этого элемента управления было одно свойство, представляющее зашифрованную строку.

У меня уже есть это свойство, и я сделал свой элемент управления закрытым и настроил привязку таким образом, чтобы он не использовал публичные свойства. Все это работает. Я просто хочу как-то отключить визуальный поиск по дереву и метод FindName, чтобы исключить возможность удаления информации о кредитной карте из элемента управления.

Я знаю, что это кажется слишком усердным, но может быть, есть даже способ сделать это?

Ответы [ 2 ]

0 голосов
/ 12 июля 2011

Вы смотрели, как это делается в шаблонном SL BussinessApplication, где используется Func?

public string Password
{
    get
    {
        return (this.PasswordAccessor == null) ? string.Empty : this.PasswordAccessor();
    }
    set
    {
        this.ValidateProperty("Password", value);

        // Do not store the password in a private field as it should not be stored in memory in plain-text.
        // Instead, the supplied PasswordAccessor serves as the backing store for the value.

        this.RaisePropertyChanged("Password");
    }
}

/// <summary>
/// Gets or sets a function that returns the password.
/// </summary>
internal Func<string> PasswordAccessor { get; set; }
0 голосов
/ 12 июля 2011

Вы можете попытаться не хранить информацию в элементе управления.Как насчет обработки его из BackgroundWorker или чего-то еще, что не видно в VisualTree?Затем обратитесь к элементу управления, используя только зашифрованную строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...