开发者

Conditionals in WPF

I have the following question: I have a 开发者_JS百科Boolean variable in a configuration file. If it is true I want a property in textbox control to be setup according to the value of that variable. Try the solution above but it does not work. What am I doing wrong? This is a fragment code:

bool isKeyboardAvtive = true; //read from configuration file

<Style x:Key="StylesTextBox" TargetType="{x:Type TextBox}">
      <Style.Triggers>
          <DataTrigger Binding="{Binding Path=isKeyboardActive}" Value="True">
               <Setter Property="k:TouchScreenKeyboard.TouchScreenKeyboard" Value="True"></Setter>
          </DataTrigger>
          <DataTrigger Binding="{Binding Path=isKyboardActive}" Value="False">
               <Setter Property="k:TouchScreenKeyboard.TouchScreenKeyboard" Value="False"></Setter>
          </DataTrigger>
      </Style.Triggers>
</Style>

<TextBox Style="{StaticResource StylesTextBox}" Margin="0,5" x:Name="txtUserName" Height="40"  Width="150" />


IsKeyboardActive needs to be a public property of the DataContext for the binding to work. Also, you don't need a trigger there, just a binding :

k:TouchScreenKeyboard.TouchScreenKeyboard="{Binding IsKeyBoardActive}"

If you use the standard VS-generated settings, you can also bind to the settings directly :

xmlns:prop="clr-namespace:YourApplication.Properties"
...

k:TouchScreenKeyboard.TouchScreenKeyboard="{Binding IsKeyBoardActive, Source={x:Static prop:Settings.Default}}"

Or even better, using this markup extension :

xmlns:local="clr-namespace:YourApplication"
...

k:TouchScreenKeyboard.TouchScreenKeyboard="{local:SettingBinding IsKeyBoardActive}"
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜