如何使用MVVM对文本框进行事件处理 [英] How to do Event Handling of text boxes using MVVM
本文介绍了如何使用MVVM对文本框进行事件处理的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
private void txtUsername_LostFocus(对象发件人,RoutedEventArgs e)
{
string usergrouptxt = txtUsername.Text;
尝试
{
if ( string .IsNullOrEmpty(usergrouptxt))
{
txtUsername.BorderBrush = new SolidColorBrush(Colors.Red);
}
其他
{
}
}
catch (SqlException usrgrpexc)
{
MessageBox.Show(usrgrpexc.ToString());
}
}
我该怎么做我在MVVM中的ViewModel中的上述操作?
解决方案
轻松借助MVVM Light Toolkit
。来自Blend SDK的System.Windows.Interactivity
。
只需添加此命名空间:
xmlns:i =clr-namespace:System.Windows.Interactivity; assembly = System.Windows.Interactivity
xmlns:cmd =clr-namespace:GalaSoft.MvvmLight.Command; assembly = GalaSoft.MvvmLight .Extras
然后,在你的TextBox
XAML注入下一行:
< textbox x:name = txt1 .... = xmlns:x = #unknown >
< i:interaction.triggers xmlns:i = #unknown >
< i:eventtrigger eventname = LostFocus >
< cmd:eventtocommand command = {Binding TestCommand,< br mode = hold = /> Mode = OneWay} xmlns:cmd = #unknown >
CommandParameter ={Binding Text,
ElementName = txt1,
Mode = OneWay}
MustToggleIsEnabledValue =True/>
< < span class =code-leadattribute> / cmd:eventtocommand > < < span class =code-leadattribute> / i:eventtrigger >
< / i:interaction.triggers >
< / textbox >
private void txtUsername_LostFocus(object sender, RoutedEventArgs e)
{
string usergrouptxt = txtUsername.Text;
try
{
if (string.IsNullOrEmpty(usergrouptxt))
{
txtUsername.BorderBrush = new SolidColorBrush(Colors.Red);
}
else
{
}
}
catch (SqlException usrgrpexc)
{
MessageBox.Show(usrgrpexc.ToString());
}
}
How can I do the above operation in my ViewModel in MVVM?
解决方案
Easily with help ofMVVM Light Toolkit
. and System.Windows.Interactivity
from Blend SDK.
Just add this namespaces:
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras"
and then, in yourTextBox
XAML inject next lines:
<textbox x:name="txt1" ....="" xmlns:x="#unknown"> <i:interaction.triggers xmlns:i="#unknown"> <i:eventtrigger eventname="LostFocus"> <cmd:eventtocommand command="{Binding TestCommand,<br mode=" hold=" /> Mode=OneWay}" xmlns:cmd="#unknown"> CommandParameter="{Binding Text, ElementName=txt1, Mode=OneWay}" MustToggleIsEnabledValue="True" /> </cmd:eventtocommand></i:eventtrigger> </i:interaction.triggers> </textbox>
这篇关于如何使用MVVM对文本框进行事件处理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文