比如我有一个 TextBox,限制最多只能输入两个字符。有一个 Label 控件,如果 TextBox 输入的是一个字,不管是什么字,Label 都显示 “某”,如果是两个字,则显示 “某某”。我不想通过 C# 编程,而是 WPF 的绑定语法,能否实现我的需求?

解决方案 »

  1.   

    "WPF 的绑定语法"? xaml?从你的描述来看,是必要触发TextBox的TextChanged事件,这个用xaml实现不了吧...
    在TextChanged事件中写类似代码:Label1.Text=new string('某',TextBox.Text.Length);
      

  2.   

    通过 WPF 的触发可否实现呢?用 C# 代码的话实现起来比较容易,但是我想这种界面上的逻辑最好用前台的 XAML 能实现最好。
      

  3.   

    先不考虑TextBox里面字符长度的问题。<TextBox Text="{Binding Mytext}" />
    <Label Content="{Binding Mytext,Converter = {....}}"你需要在Converter中写逻辑,就可以处理 某,某某的需求。
    至于 TextBox 里面字符的长度,貌似 TextBox本身有一个属性 MaxLength 。
      

  4.   

    Binding+Converter
    貌似没有难度啊
      

  5.   

    使用XAML可以轻松实现,去查一下action  Triggers 用法,网上的例子代码太多了
    比如以下代码是当MouseEnter事件发生时,修改myMenuItems.Visibility的值.
    <i:Interaction.Triggers>
                    <i:EventTrigger EventName="MouseEnter">
                        <ei:ChangePropertyAction TargetName="myMenuItems" PropertyName="Visibility">
                            <ei:ChangePropertyAction.Value>
                                <Visibility>Collapsed</Visibility>
                            </ei:ChangePropertyAction.Value>
                        </ei:ChangePropertyAction>
                    </i:EventTrigger>
                </i:Interaction.Triggers>