如何在wpf中添加资源文件中的CheckBox内容?

时间:2015-10-30 06:47:33

标签: wpf checkbox

我有一个组合框,其中第一项是复选框,从下面的下拉列表中选择所有条目。使用硬编码字符串它工作正常,但现在我想要本地化...想要从资源文件设置字符串,但深度插入无法添加它。为此,我尝试添加面板和一个复选框以及文本块,也简单地将textblock与复选框分开。

这是代码:

        <ComboBox Name="CmbEntries" IsTabStop="{Binding CurrentDialogViewModel, Converter={StaticResource NullToBoolConverter}}" Grid.Column="1" Grid.Row="4" VerticalAlignment="Top" Margin="2,0,0,5" SelectedItem="{Binding SelectedEntries}" SelectedIndex="0" HorizontalAlignment="Left" Width="400">
            <ComboBox.Resources>
                <CollectionViewSource x:Key="EntriesCollection" Source="{Binding DicomDir.Entries}"/>
            </ComboBox.Resources>
            <ComboBox.ItemsSource>
                <CompositeCollection>
                    <ComboBoxItem>
                        <CheckBox x:Name="all" Margin="8,0,0,0" 
                                  IsChecked="{Binding IsAllEntriessSelected, Mode=TwoWay}"
                                  Command="{Binding SelectAllEntriessCommand}"
                                  CommandParameter="{Binding IsChecked, RelativeSource={RelativeSource Self}}"
                                  **Content="Select All Entries"** />
                    </ComboBoxItem>
                    <CollectionContainer Collection="{Binding Source={StaticResource EntriesCollection}}"/>
                </CompositeCollection>
            </ComboBox.ItemsSource>
            <ComboBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <CheckBox Margin="8,0,0,0" 
                                  IsChecked="{ Binding Path=IsAnyEntitySelected, Mode=TwoWay }"
                                  Command="{Binding SelectAllEntityCommand}"
                                  CommandParameter="{Binding IsChecked, RelativeSource={RelativeSource Self}}" />
                        <TextBlock Margin="5,0,0,0" TextWrapping="Wrap" Text="{Binding DisplayEntriesInfo}"/>
                    </StackPanel>
                </DataTemplate>
            </ComboBox.ItemTemplate>
            <ComboBox.ItemContainerStyle>
                <Style TargetType="ComboBoxItem">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding HasSelectedEntities}" Value="True">
                            <Setter Property="FontWeight" Value="Bold"/>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </ComboBox.ItemContainerStyle>
        </ComboBox>

Scrshot1-Expected Scrshot2-Actual with Resx

在这种情况下,是否可以直接从资源文件中读取它?

1 个答案:

答案 0 :(得分:0)

要将内容绑定到您执行的资源:

<Window ...
        xmlns:properties="clr-namespace:YourNamespace.Properties">
    <Grid>
        <CheckBox Content="{x:Static properties:Resources.Foo}" />
    </Grid>
</Window>

为此,您需要公开资源。 如果不是你得到:

Provide value on 'System.Windows.Markup.StaticExtension' threw an exception...
     StaticExtension value cannot be resolved to an enumeration, static field, or static property.