WPF中的条件句
我有以下问题:配置文件中有一个布尔变量。如果它是真的,我希望textbox控件中的属性根据该变量的值进行设置。 尝试上面的解决方案,但它不起作用。我做错了什么? 这是一段代码:WPF中的条件句,wpf,Wpf,我有以下问题:配置文件中有一个布尔变量。如果它是真的,我希望textbox控件中的属性根据该变量的值进行设置。 尝试上面的解决方案,但它不起作用。我做错了什么? 这是一段代码: bool isKeyboardAvtive = true; //read from configuration file <Style x:Key="StylesTextBox" TargetType="{x:Type TextBox}"> <Style.Triggers>
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" />
bool iskeyboardavctive=true//从配置文件读取
IsKeyboardActive
必须是DataContext
的公共属性,绑定才能工作。此外,您不需要触发器,只需要绑定:
k:TouchScreenKeyboard.TouchScreenKeyboard="{Binding IsKeyBoardActive}"
如果使用标准VS生成的设置,还可以直接绑定到设置:
xmlns:prop="clr-namespace:YourApplication.Properties"
...
k:TouchScreenKeyboard.TouchScreenKeyboard="{Binding IsKeyBoardActive, Source={x:Static prop:Settings.Default}}"
或者更好,使用:
xmlns:local="clr-namespace:YourApplication"
...
k:TouchScreenKeyboard.TouchScreenKeyboard="{local:SettingBinding IsKeyBoardActive}"