Как вставить строку, сгенерированную в коде c #, в кнопку xaml? - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь создать автономный менеджер паролей. Есть функция, которая должна сгенерировать пароль и поместить его в запись, которая должна содержать эти данные. Прямо сейчас я пытаюсь вставить результат генерирования метода из кода C # в кнопку xaml.

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

//this is the generating button in app
void OnGenerateClicked(object sender, EventArgs e)
{
    var passwordEntry = new Entry();
    passwordEntry.SetBinding(Entry.TextProperty, "Haslo");

    bool includeLowercase = true;
    bool includeUppercase = true;
    bool includeNumeric = true;
    bool includeSpecial = true;
    bool includeSpaces = false;
    int lengthOfPassword = 12;
    string password = 
        PasswordGeneration.GeneratePassword(includeLowercase, includeUppercase, 
        includeNumeric, includeSpecial, includeSpaces, lengthOfPassword);
    var Haslo = new Entry { Text = password }; 
    // here i've tried to assign the text property to the entry 
    //  "Haslo" but unfortunately it's not working.
}

XAML:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="OpassV1.Widoki.ServicePage">
    <StackLayout Margin="20" VerticalOptions="StartAndExpand">
        <Label Text="Nazwa" />
        <Entry Text="{Binding Nazwa}" /> 
        <Label Text="Hasło"/>
        <Entry x:Name="Haslo" Text="{Binding Haslo}"/>
        <Button Text="Genruj hasło" Clicked="OnGenerateClicked" /> 
        <Button Text="Zapisz" Clicked="OnSaveClicked" />
        <Button Text="Usuń" Clicked="OnDeleteClicked" />
        <Button Text="Anuluj" Clicked="OnCancelClicked" />
        </StackLayout>
</ContentPage>

Я хотел бы отобразить сгенерированный пароль в записи с помощью «Binding Nazwa» после нажатия кнопки «OnGenerateClicked»

Я благодарен за все ответы:)

1 Ответ

0 голосов
/ 10 мая 2019

это создает новый экземпляр записи

var Haslo = new Entry { Text = password }; 

вы хотите использовать существующий экземпляр Entry, который вы создали в своем XAML. Любой элемент в вашем XAML, имеющий свойство x:Name, должен быть доступен по имени в вашем коде позади

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