Ориентация объекта C#

У меня есть общий вопрос по объектному ориентированию в C#.

Предположим, у меня есть несколько страниц XAML, у которых есть этот метод:

private void SubmitButton_Click(object sender, RoutedEventArgs e)
{
   // Do Something
}

Теперь у меня есть класс для хранения метода, который называется Methods.cs и содержит это:

public void StopUpperAndSpace(TextBox txtBox) 
{
   txtBox.Text = txtBox.Text.Trim();
   // Set it to lowercase
   txtBox.Text = txtBox.Text.ToLower();
}

Когда пользователь нажимает SubmitButton на любой из страниц, я хочу, чтобы он выполнял этот метод, сохраненный в Methods.cs. Если у меня есть текстовое поле на одной странице XAML с именем NameTextBox, когда пользователь нажимает SubmitButton, как мне выполнить метод, чтобы NameTextBox в методе SubmitButton_Click равнялся txtBox в методе StopUpperAndSpace?

Я понимаю, что вопрос трудно понять, но мне трудно объяснить. Если вам нужны разъяснения, просто прокомментируйте! Спасибо:)

1 ответ

Решение

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

SomePage.xaml

<TextBox x:Name="SomeTextBox" />
<TextBox x:Name="SomeOtherTextBox />

SomePage.xaml.cs

private void SubmitButton_Click(object sender, RoutedEventArgs e)
{
    // Your initial method call could potentially look like this.
    Methods.StopUpperAndSpace(this.SomeTextBox);

    // Alternatively you could do something like this.
    this.SomeOtherTextBox.Text = Methods.ToLowerAndTrim(this.SomeOtherTextBox.Text);
}

Methods.cs

public static void StopUpperAndSpace(TextBox txtBox) 
{
    txtBox.Text = txtBox.Text.Trim();
    // Set it to lowercase
    txtBox.Text = txtBox.Text.ToLower();
}

public static string ToLowerAndTrim(string text)
{
    return text.Trim().ToLower();
}
Другие вопросы по тегам