你需要存儲保存的值的數據結構。例如。字符串列表。在以下片段中,這些值存儲在SavedTextBoxTexts
列表中。
首先,SaveButton
被禁用(您也可以在XAML中執行此操作)。當點擊SaveButton
時,textBox1.text
值將被存儲在列表中,並且按鈕被禁用。
當編輯textBox1.text
並且SaveButton
存在(已經)時,將檢查不同的條件。
如果textBox1.text
已存儲在SavedTextBoxTexts
或textBox1.text
爲空或僅包含空格字符,則SaveButton
被禁用。否則,SaveButton
將被啓用。
public partial class MainWindow : Window
{
private List<string> SavedTextBoxTexts = new List<string>();
public MainWindow()
{
InitializeComponent();
// Disable button right from the beginning.
SaveButton.IsEnabled = false;
}
private void textBox1_TextChanged(object sender, TextChangedEventArgs e)
{
// The function may be called, while the window has not been created completely.
// So we have to check, if the button can already be referenced.
if (SaveButton != null)
{
// Check if textBox1 is empty or
// textBox1.text is already in the list of saved strings.
if (String.IsNullOrEmpty(textBox1.Text) ||
textBox1.Text.Trim().Length == 0 ||
SavedTextBoxTexts.IndexOf(textBox1.Text.Trim()) >= 0)
{
// Disable Button
SaveButton.IsEnabled = false;
}
else
{
// If textBox1.text has not been saved already
// or is an empty string or a string of whitespaces,
// enable the SaveButton (again).
SaveButton.IsEnabled = true;
}
}
}
private void SaveButton_Click(object sender, RoutedEventArgs e)
{
// Store the text in textBox1 into the SavedTextBoxTexts list.
SavedTextBoxTexts.Add(textBox1.Text.Trim());
// Disable the SaveButton.
SaveButton.IsEnabled = false;
}
// This is executed, when the other button has been clicked.
// The text in textBox1 will not be saved.
private void AnotherButton_Click(object sender, RoutedEventArgs e)
{
if (WpfHelpers.Confirmation(resources.QuitWithoutSaving, resources.Changes))
{
// Move to other page ...
}
}
}
就這樣,我更好地理解這一點......你想禁用一個文本框,如果某個短語/單詞在裏面? – ephtee
是的基本上,我想要的是當文本框爲空時,禁用按鈕。當它不是空的,然後啓用。我可以用上面的代碼來做這件事。我還想要做的是,如果文本框中已有文本可以說「歡迎」,當我嘗試編輯它並使其成爲「WelcomeSSS」時,它將啓用,但是如果您從文本框中刪除SSS並且使之成爲「歡迎」的方式應該是禁用文本框之前。 – user6574269
我們都花了很多時間回答你的問題。所以請付出一些努力來提問。例如。你想禁用文本框「如何確保文本在這種情況下被禁用?」或按鈕「SaveButton.IsEnabled = true」?請先分開你問過的問題,現在你想要什麼。這將幫助人們理解下面的一些答案。 – user2154065