gpt4 book ai didi

silverlight - 需要在Silverlight MVVM中文本框为空或为空时禁用我的按钮吗?

转载 作者:行者123 更新时间:2023-12-03 10:53:44 24 4
gpt4 key购买 nike

我在Silverlight5中使用MVVM模式做一个简单的应用程序。在设计页面中,我有三个文本框和一个按钮。在这里,我的要求是3文本框为空还是null表示该按钮将被禁用。如何实现这一点..任何帮助..?
我的问题是:

1)适用于第一个文本框。当我在第一个文本框中输入任何内容时,按钮处于禁用模式。但是,如果我移到第二个TextBox,则意味着该按钮已启用。
2)我需要启用该唯一按钮后,所有文本框都将经过验证。如果“文本框”中的任何一个为空,则意味着该按钮再次进入禁用模式。
任何帮助..?
在这里,我附上了我的编码..
Xml:

<Button Content="Add"  Width="59" IsEnabled="{Binding ButtonIsEnabled}" Height="23" Margin="256,75,0,0" VerticalAlignment="Top" HorizontalAlignment="Left" TabIndex="4" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<si:CallDataMethod Method="AddEmployee"/>
<si:SetProperty TargetName="LayoutRoot" PropertyName="Background" Value="LightBlue"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<TextBlock FontWeight="Bold" Height="26" HorizontalAlignment="Left" Margin="47,12,0,0" Name="textBlock1" Text="First Name:" VerticalAlignment="Top" Width="77" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="130,12,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" Text="{Binding Fname,Mode=TwoWay}" TabIndex="1" AcceptsReturn="False">
<i:Interaction.Triggers>
<i:EventTrigger EventName="TextChanged">
<si:CallDataMethod Method="ButtonIsEnabled"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBox>
<TextBlock FontWeight="Bold" Height="25" HorizontalAlignment="Left" Margin="35,44,0,0" Name="textBlock2" Text="Second Name:" VerticalAlignment="Top" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="130,44,0,0" Name="textBox2" VerticalAlignment="Top" Width="120" Text="{Binding Sname,Mode=TwoWay}" TabIndex="2" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="TextChanged">
<si:CallDataMethod Method="ButtonIsEnabled"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBox>
<TextBlock FontWeight="Bold" Height="23" HorizontalAlignment="Left" Margin="45,75,0,0" Name="textBlock3" Text="Department:" VerticalAlignment="Top" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="130,75,0,0" Name="textBox3" VerticalAlignment="Top" Width="120" Text="{Binding Dept,Mode=TwoWay}" TabIndex="3" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="TextChanged">
<si:CallDataMethod Method="ButtonIsEnabled"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBox>

ViewModel代码:

EmployeeListViewModel.cs
public bool ButtonIsEnabled
{
get
{
return !(((string.IsNullOrEmpty(this.Fname)) && (string.IsNullOrEmpty(this.Sname)) && (string.IsNullOrEmpty(this.Dept))));
}
}
private string _fname;
public string Fname
{
get
{
return _fname;
}
set
{
if (_fname != value)
{
_fname = value;
RaisePropertyChanged("Fname");
//RaisePropertyChanged("ButtonIsEnabled");
}
else
{
_fname = value;
RaisePropertyChanged("Fname");
}
}
}


private string _sname;
public string Sname
{
get
{
return _sname;
}
set
{
if (_sname != value)
{
_sname = value;
RaisePropertyChanged("Sname");
RaisePropertyChanged("ButtonIsEnabled");
}
else
{
_sname = value;
RaisePropertyChanged("Sname");
}
}
}
private string _dept;
public string Dept
{
get
{
return _dept;
}
set
{
if (_dept != value)
{
_dept = value;
RaisePropertyChanged("Dept");
RaisePropertyChanged("ButtonIsEnabled");
}
else
{
_dept = value;
RaisePropertyChanged("Dept");
}
}
}

最佳答案

如果希望仅在每个文本框包含文本时才启用按钮,则需要像下面这样更改ButtonIsEnabled属性:

public bool ButtonIsEnabled
{
get
{
return !(((string.IsNullOrEmpty(this.Fname)) || (string.IsNullOrEmpty(this.Sname)) || (string.IsNullOrEmpty(this.Dept))));
}
}

关于silverlight - 需要在Silverlight MVVM中文本框为空或为空时禁用我的按钮吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13087007/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com