C# 如何在WPF中更改小数UPDOWN中的值时不启用按钮
我有两个小数点 一个是最大值,一个是最小值 如果最小值大于最大值,则不应启用该按钮 XAMLC# 如何在WPF中更改小数UPDOWN中的值时不启用按钮,c#,wpf,xaml,data-binding,C#,Wpf,Xaml,Data Binding,我有两个小数点 一个是最大值,一个是最小值 如果最小值大于最大值,则不应启用该按钮 XAML <tool:DecimalUpDown Name="min" Value="0.00" /> <tool:DecimalUpDown Name="Max" Value="0.00" /> <Button x:Name="Aplly" IsEnabled="{
<tool:DecimalUpDown Name="min" Value="0.00" />
<tool:DecimalUpDown Name="Max" Value="0.00" />
<Button x:Name="Aplly" IsEnabled="{Binding MaxSmallerMin, UpdateSourceTrigger=PropertyChanged}" Content="Aplly" >
C#
public主窗口()
{
初始化组件();
DataContext=this;
}
公共布尔MaxSmallerMin
{
得到{
如果(最小文本!=“”&最大文本!=“”)
如果(Convert.ToDouble(min.Text)您必须告诉GUI您的MaxSmallerMin
属性已更改。您可以使用INotifyPropertyChanged
界面执行此操作。当min.Text
或max.Text
更改时,您必须调用相应的事件。您的代码可能如下:
C#:
class主窗口:INotifyPropertyChanged
{
公共事件属性更改事件处理程序属性更改;
公共主窗口()
{
初始化组件();
DataContext=this;
}
公共布尔MaxSmallerMin
{
得到{
如果(最小文本!=“”&最大文本!=“”)
如果(Convert.ToDouble(min.Text)它不知道PropertyChangedEventary,那是一个输入错误。我已经修复了它。另请参见
public MainWindow()
{
InitializeComponent();
DataContext = this;
}
public bool MaxSmallerMin
{
get {
if (min.Text != "" && max.Text != "")
if (Convert.ToDouble(min.Text) <= Convert.ToDouble(max.Text))
return true;
return false;
}
}
class MainWindow : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public MainWindow()
{
InitializeComponent();
DataContext = this;
}
public bool MaxSmallerMin
{
get {
if (min.Text != "" && max.Text != "")
if (Convert.ToDouble(min.Text) <= Convert.ToDouble(max.Text))
return true;
return false;
}
}
private void textChangedEventHandler(object sender, TextChangedEventArgs args)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(MaxSmallerMin)));
}
}
<tool:DecimalUpDown Name="min" TextChanged="textChangedEventHandler" Value="0.00" />
<tool:DecimalUpDown Name="Max" TextChanged="textChangedEventHandler" Value="0.00" />