Xaml 当组合框选择更改时更改 TextBlock 的文本

Xaml Change text of TextBlock When Combobox Selection Change

我的 Xaml 个文件目前遇到问题。我创建了一个带有 2 个固定组合框项目的组合框。我还创建了一个文本块。这是 xaml 代码:

<StackPanel>
    <TextBlock Grid.Column="0" x:Name="UserSettingsConnectorGroupBoxProductTextBlock" HorizontalAlignment="Left"  TextWrapping="Wrap" Text="{Binding Strings.UserSettingsConnectorGroupBoxProductText, Source={StaticResource StringLocalizer}}" VerticalAlignment="Center" Margin="10,0,0,0"  />
    <ComboBox Grid.Column="1" x:Name="UserSettingsConnectorGroupBoxProductComboBox" VerticalAlignment="Center" Width="300" HorizontalAlignment="Left" Margin="10,5,0,0" SelectionChanged="UserSettingsConnectorGroupBoxProductComboBox_SelectionChanged" >
        <ComboBoxItem Content="Microsoft Deployment Toolkit" />
        <ComboBoxItem Content="Microsoft System Center Configuration Manager" />
    </ComboBox>
    <StackPanel Orientation="Vertical" HorizontalAlignment="Left" Margin="10,0,0,0">
    <TextBlock Name="ConnectorTextBlock" Text="toto" Margin="0,5" >
        <TextBlock.Style>
            <Style TargetType="TextBlock">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding ElementName=UserSettingsConnectorGroupBoxProductComboBox, Path=Text}" Value="Microsoft Deployment Toolkit">
                        <Setter Property="Text" Value="{Binding Strings.UserSettingsConnectorGroupBoxProductTextBlockConnectorPathMDT, Source={StaticResource StringLocalizer}}" />
                    </DataTrigger>
                    <DataTrigger Binding="{Binding ElementName=UserSettingsConnectorGroupBoxProductComboBox, Path=Text}" Value="Microsoft System Center Configuration Manager">
                        <Setter Property="Text" Value="{Binding Strings.UserSettingsConnectorGroupBoxProductTextBlockConnectorPathSCCM, Source={StaticResource StringLocalizer}}" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </TextBlock.Style>
    </TextBlock>
    <StackPanel Orientation="Horizontal" >
        <TextBox Name="ConnectorTextBox" Margin="0,5" Width="300">
        </TextBox>
        <Button Content="Test" Margin="5" Width="100" HorizontalAlignment="Right"/>
    </StackPanel>
    <Button Content="Save" Width="100" HorizontalAlignment="Left" Margin="0,5" IsEnabled="False"/>
    </StackPanel>

预览:

enter image description here

我希望名为 "ConnectorTextBox" 的文本块的文本在组合框选定项更改时更改。为此,我在绑定到 Combobox 控件的 "Text" 属性 的 TextBlock 中创建了 2 个数据触发器。根据 Text 属性 的值,textblock 的 Text 值会发生变化。

但它不起作用。仅显示默认值 "Toto",即使我更改了组合框选择。

任何帮助将不胜感激:) :)

瑞吉斯

避免设置 TextBlockText 属性。试试这个

<TextBlock Name="ConnectorTextBlock" Margin="0,5" >
    <TextBlock.Style>
        <Style TargetType="TextBlock">
            <Style.Triggers>
                <DataTrigger Binding="{Binding ElementName=UserSettingsConnectorGroupBoxProductComboBox, Path=Text}" Value="Microsoft Deployment Toolkit">
                    <Setter Property="Text" Value="{Binding Strings.UserSettingsConnectorGroupBoxProductTextBlockConnectorPathMDT, Source={StaticResource StringLocalizer}}" />
                </DataTrigger>
                <DataTrigger Binding="{Binding ElementName=UserSettingsConnectorGroupBoxProductComboBox, Path=Text}" Value="Microsoft System Center Configuration Manager">
                    <Setter Property="Text" Value="{Binding Strings.UserSettingsConnectorGroupBoxProductTextBlockConnectorPathSCCM, Source={StaticResource StringLocalizer}}" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBlock.Style>
</TextBlock>

如果要设置默认值,请按以下步骤操作

<TextBlock Name="ConnectorTextBlock" Margin="0,5" >
                <TextBlock.Style>
                    <Style TargetType="TextBlock">
                        <Setter Property="Text" Value="Toto" />
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding ElementName=UserSettingsConnectorGroupBoxProductComboBox, Path=Text}" Value="Microsoft Deployment Toolkit">
                                <Setter Property="Text" Value="{Binding Strings.UserSettingsConnectorGroupBoxProductTextBlockConnectorPathMDT, Source={StaticResource StringLocalizer}}" />
                            </DataTrigger>
                            <DataTrigger Binding="{Binding ElementName=UserSettingsConnectorGroupBoxProductComboBox, Path=Text}" Value="Microsoft System Center Configuration Manager">
                                <Setter Property="Text" Value="{Binding Strings.UserSettingsConnectorGroupBoxProductTextBlockConnectorPathSCCM, Source={StaticResource StringLocalizer}}" />
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </TextBlock.Style>
            </TextBlock>

希望对您有所帮助!!