关于应用这个按钮,当你填写数据后点击应用,应用会自动变灰没法操作,但当你对数据进行修改时,应用按钮会恢复,以下是我写的命令对应用按钮进行操作,proConfigView为实例的窗体,btnUesd为ButtonName
private void AddUsedCmdExcute(object parameter)
{
if (proConfigView.btnUesd.IsFocused)
{
AddMsg();
proConfigView.btnUesd.IsEnabled = false;
}
else
{
if (proConfigView.txtName.IsFocused)
{
proConfigView.btnUesd.IsEnabled = true;
}
}
}
------解决思路----------------------
if (proConfigView.txtName.IsFocused)
{
proConfigView.btnUesd.IsEnabled = true;
}
你怎么把这个判断写进按钮事件里了
这样一来,你不点按钮,它也不会执行啊
你应该在文本框的获得焦点事件里写代码
------解决思路----------------------
你的需求描述的很清楚啊,怎么可能都在按钮的动作中完成。
你就简单地从实际流程进行分析:
(动作)点击“应用”按钮 --> (结果) 禁用”应用“按钮,
(动作)编辑文本 --> (结果)启用”应用“按钮。
从代码的角度看,应该用事件处理程序响应动作,实现结果:
(动作)点击“应用”按钮 --> 事件处理程序,
(动作)编辑文本 --> 事件处理程序。
然后你需要找到合适的事件,编写相应处理程序。这里要使用的事件是Button的Click事件 和 TextBox的TextChanged事件。
给个简单的例子,事件处理程序是写在后台代码中。如果用绑定的方式,那就要自己改造了。
.xaml
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal" VerticalAlignment="Top" TextBox.TextChanged="tb_TextChanged">
<TextBlock Text="Number"/>
<TextBox MinWidth="120" MaxWidth="200"/>
<TextBlock Text="Name"/>
<TextBox MinWidth="120" MaxWidth="200"/>
</StackPanel>
<Button Grid.Row="1" Name="btnApply" Click="btnApply_Click" Content="Apply" HorizontalAlignment="Center"/>
</Grid>
xaml.cs
private void btnApply_Click(object sender, RoutedEventArgs e)
{
btnApply.IsEnabled = false;
}
private void tb_TextChanged(object sender, TextChangedEventArgs e)
{
btnApply.IsEnabled = true;
}