var amountButtonString = enterAmountButton.Content as string;
var enterTipButtonString = enterTipButton.Content as string;
if (String.IsNullOrEmpty(amountButtonString))
MessageBox.Show("Please enter the total bill amount.");
else if (String.IsNullOrEmpty(enterTipButtonString))
MessageBox.Show("Please enter the tip % amount.");
會工作。但是,你如何期待獲得字符串?你最有可能想要在按鈕旁邊的TextBox中的值是否正確?
在這種情況下:
if (String.IsNullOrEmpty(amountTextBox.Text))
MessageBox.Show("Please enter the total bill amount.");
else if (String.IsNullOrEmpty(tipTextBox.Text))
MessageBox.Show("Please enter the tip % amount.");
其中amountTextBox
& tipTextBox
是你TextBoxes
的x:Name
。
最後一件事:
可能有更好的方法來處理這個問題。例如,如果你處理的KEYUP &框TextChanged在文本框的事件,在文本中存在(甚至更好,有效的文本;)僅啓用按鈕)
你可以使用一個轉換器太:
public class StringToEnabledConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var val = value as string;
if (val == null)
throw new ArgumentException("value must be a string.");
return !string.IsNullOrEmpty(val);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
添加參考你的轉換器<Converters:StringToEnabledConverter x:Key="StringToEnabledConverter" />
,並在您的按鈕,
<TextBox x:Name="amountTextBox />
<Button x:Name="enterAmountButton" Enabled="{Binding ElementName=amountTextBox, Path=Text, Converter={StaticResource StringToEnabledConverter}}" />
請在發佈之前嘗試調試..我相信您可以看到內容的類型並將其轉換爲適當的字符串。 –