silverlight   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何连接TextBox的TextChanged事件和命令,以便在Silverlight中使用MVVM模式大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

最近我意识到R_74_11845@VVM模式对于Silverlight应用程序来说非常有用,并且研究如何将其应用到我的项目中. BTW,如何使用COR_74_11845@mand连接文本框的textChanged事件? Button有Command属性,但Textbox没有commapd属性. 如果控件没有命令属性,那么如何组合ICommand和Control的事件? 我得到以下xaml代码 <UserControl.resources@H_262_5@
最近我意识到R_74_11845@VVM模式对于Silverlight应用程序来说非常有用,并且研究如何将其应用到我的项目中.

BTW,如何使用COR_74_11845@mand连接文本框的textChanged事件? Button有Command属性,但TextBox没有commapd属性.
如果控件没有命令属性,那么如何组合ICommand和Control的事件?

我得到以下xaml代码

<UserControl.resources>
        <vm:Customerviewmodel x:Key="customerVM"/>    
    </UserControl.resources>

    <Grid x:Name="LayoutRoot" 
          BACkground="White" 
          DataContext="{Binding Path=Customers,source={Staticresource customerVM},Mode=TwoWay}" >

        <StackPanel>
            <StackPanel Orientation="Horizontal"
                        Width="300"
                        HorizontalAlignment="Center">
                <TextBox x:Name="tbName" 
                         Width="50" 
                         Margin="10"/>
                <Button Width="30" 
                        Margin="10" 
                        Content="Find"
                        Command="{Binding Path=GetCustomersByNameCommand,source={Staticresource customerVM}}"
                        CommandParameter="{Binding Path=Text,ElementName=tbNamE}"/>
            </StackPanel>
            <sdk:DataGrid Itemssource="{Binding Path=DataContext,ElementName=LayoutRoot}"
                          AutoGeneratecolumns="True"
                          Width="300"
                          Height="300"/>
        </StackPanel>
    </Grid>

我想要做的是,如果用户在文本框中输入一些文本,数据将显示在datagrid中,而不是使用按钮单击.
我知道内置自动完成框控件,但是,我想知道如何在没有Command属性(如textBox)的控件中调用viewmodel类中的Command属性.

谢谢

解决方法

这是最简单的方法.将您的文本框绑定到视图模型上的属性,如上所述.然后,只需添加一个代码隐藏(是的,我正在使用MVVM代码隐藏,这不是世界的尽头)事件到文本框.添加一个TextChanged事件,然后简单地刷新绑定.

总而言之,您将有一个这样的视图模型:

public class Myviewmodel 
{
    private String _myText;

    public String myText 
    {
        get { return _myText; }
        set 
        {
            _myText = value;
            RaisePropertyChanged("myText"); // this needs to be implemented
            // Now do whatever grid refresh/etc
        }
    }
}

你的XAML,你会有这样的:

<TextBox Text="{Binding myText,Mode=TwoWay}" TextChanged="TextBox_TextChanged"/>

最后,在代码背后,简单地做:

public void TextBox_TextChanged(object sender,TextChangedEventArgs E)
{
   var binding = ((TextBox)sender).GetBindingExpression(TextBox.TextProperty);
   binding.@R_489_9531@esource();
}

这将导致您的属性在文本更改的任何时候更新.}

大佬总结

以上是大佬教程为你收集整理的如何连接TextBox的TextChanged事件和命令,以便在Silverlight中使用MVVM模式全部内容,希望文章能够帮你解决如何连接TextBox的TextChanged事件和命令,以便在Silverlight中使用MVVM模式所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。