RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1151603
Accepted
Vladimir
Vladimir
Asked:2020-07-11 20:54:19 +0000 UTC2020-07-11 20:54:19 +0000 UTC 2020-07-11 20:54:19 +0000 UTC

转换器的问题

  • 772

问题是转换器不想在ResourceDictionary(ListBox.xaml)中工作,如果它包含在App.xaml中,只有当你直接将它连接到ListBox.xaml <converters:BoolToStringConverter x:Key="BoolToString" />一切都会变好。

错误:异常:找不到名为“BoolToString”的资源。资源名称区分大小写。

我真正想要得到的是:是否有可能以某种方式从App.xaml到ListBox.xaml获得转换器,这 不是仅在ListBox.xaml中使用的选项。

列表框.xaml

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                     xmlns:converters="clr-namespace:PriceCreator.Services.Converters"
                    >
    <converters:BoolToStringConverter   x:Key="BoolToString" />
    <ControlTemplate x:Key="VideoListItems" TargetType="ListBoxItem">

        <Grid>
            <Border   
                Name="brd"
                Margin="10,2"
                Background="{StaticResource MediumBrush}"
                CornerRadius="2">
                <Grid  >
                    <Grid.RowDefinitions>
                        <RowDefinition Height="25*"/>
                        <RowDefinition Height="22*"/>
                        <RowDefinition Height="26*"/>
                        <RowDefinition Height="818*"/>
                    </Grid.RowDefinitions>
                    <TextBlock x:Name="Name"  FontWeight="Bold" Foreground="Gray"   Style="{StaticResource BaseText}" FontSize="18"
                           Margin="5" TextTrimming="CharacterEllipsis"  Text="{Binding  Name,StringFormat=Имя товара:{0}}" TextAlignment="Center"  VerticalAlignment="Center"/>
                    <Grid Grid.Row="1">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="142*"/>
                            <ColumnDefinition Width="38*"/>
                            <ColumnDefinition Width="229*"/>
                            <ColumnDefinition Width="365*"/>
                        </Grid.ColumnDefinitions>
                        <TextBlock    Margin="2" x:Name="Price"  Grid.Column="0"  Text="{Binding Price,StringFormat=Цена:{0}}"   FontWeight="Bold" Foreground="Gray"   Style="{StaticResource BaseText}" FontSize="18" VerticalAlignment="Center" HorizontalAlignment="Right" />
                        <TextBlock    Margin="2" x:Name="CurrencyId" Grid.Column="1"  Text="{Binding CurrencyId}"   FontWeight="Bold" Foreground="Gray"   Style="{StaticResource BaseText}" FontSize="18" VerticalAlignment="Center" />
                        <TextBlock    FontWeight="Bold" Foreground="Gray"   Style="{StaticResource BaseText}"  Margin="2" x:Name="Stock_quantity" Grid.Column="2"  Text="{Binding Stock_quantity,StringFormat=Количество товаров:{0}}" FontSize="18" VerticalAlignment="Center"  />
                        <TextBlock    TextTrimming="CharacterEllipsis" FontWeight="Bold" Foreground="Gray"   Style="{StaticResource BaseText}"  Margin="2" x:Name="Vendor" Grid.Column="3"  Text="{Binding Vendor,StringFormat=Производитель товара:{0}}"     FontSize="18" VerticalAlignment="Center"/>
                    </Grid>
                    <Grid Grid.Row="2">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="251*"/>
                            <ColumnDefinition Width="523*"/>
                        </Grid.ColumnDefinitions>
                        <TextBlock Style="{StaticResource BaseText}" Margin="2" Text="{Binding Available,StringFormat=Есть товар в наличии:{0},Converter={StaticResource BoolToString}}" FontSize="18" FontWeight="Bold"  Foreground="Gray"  />
                    </Grid>


                </Grid>
            </Border>

            <!--<Polygon
                Name="triangle"
                Margin="2"
                HorizontalAlignment="Left"
                VerticalAlignment="Center"
                Fill="{Binding ElementName=brd, Path=Background}"
                Points="0,0 20,15, 0,30"
                Visibility="Hidden" />-->
        </Grid>


        <ControlTemplate.Triggers>
            <Trigger Property="IsSelected" Value="true">
                <Setter TargetName="brd" Property="Background" Value="{StaticResource BrushBlue}" />
                <!--<Setter TargetName="triangle" Property="Visibility" Value="Visible" />-->
                <Setter TargetName="Name" Property="Foreground" Value="White" />
                <Setter TargetName="Price" Property="Foreground" Value="White" />
                <Setter TargetName="CurrencyId" Property="Foreground" Value="White" />
                <Setter TargetName="Vendor" Property="Foreground" Value="White" />
                <Setter TargetName="Stock_quantity" Property="Foreground" Value="White" />
                <!--<Setter TargetName="Id" Property="Foreground" Value="White" />-->
            </Trigger>

            <Trigger Property="IsMouseOver" Value="true">
                <Setter TargetName="brd" Property="Background" Value="{StaticResource BrushBlue}" />
                <Setter TargetName="Name" Property="Foreground" Value="White" />
                <Setter TargetName="Price" Property="Foreground" Value="White" />
                <Setter TargetName="CurrencyId" Property="Foreground" Value="White" />
                <Setter TargetName="Vendor" Property="Foreground" Value="White" />
                <Setter TargetName="Stock_quantity" Property="Foreground" Value="White" />
                <!--<Setter TargetName="Id" Property="Foreground" Value="White" />-->
            </Trigger>
        </ControlTemplate.Triggers>
    </ControlTemplate>
</ResourceDictionary>

应用程序.xaml

<Application x:Class="PriceCreator.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:converters="clr-namespace:PriceCreator.Services.Converters"
             StartupUri="Views\PriceCeatorView.xaml">
    <Application.Resources>
        <!--Подключение ресурсов-->
        <ResourceDictionary >
         <!--Подключение конвертеров-->
         <converters:StringTointConverter x:Key="StringToint" />
         <converters:IntToVisibilityConverter x:Key="IntToVisibility" />
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Styles\Colors.xaml"/>
                <ResourceDictionary Source="Styles\Fonts.xaml"/>
                <!--<ResourceDictionary Source="Styles\Icons.xaml" />-->
                <ResourceDictionary Source="Styles\ScrollViewer.xaml" />
                <ResourceDictionary Source="Styles\Texts.xaml" />
                <ResourceDictionary Source="Styles\Buttons.xaml" />
                <!--<ResourceDictionary Source="Styles\RadioButton.xaml" />-->
                <!--<ResourceDictionary Source="Styles\ContentControls.xaml" />
                <ResourceDictionary Source="Styles\UserControl.xaml" />-->
                <ResourceDictionary Source="Styles\ListBox.xaml" />

            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>
wpf
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    Vladimir
    2020-07-12T20:14:00Z2020-07-12T20:14:00Z

    转换器连接xmlns:converters="clrnamespace:PriceCreator.Services.Converters"- 我在 Services 文件夹中有一个 Converters 文件夹。

    创建转换器的基类:

     abstract class ConverterBase : MarkupExtension, IValueConverter
     {
                public abstract object Convert(object value, Type targetType, object parameter, CultureInfo culture);
                public virtual object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)=> throw new NotImplementedException();
                public override object ProvideValue(IServiceProvider serviceProvider) => this;
     }
    

    从 Bool 到 String 的示例转换器:

    class BoolToStringConverter : ConverterBase
    {
          
            public override object Convert(object value, Type targetType, object parameter, CultureInfo culture)
            {
                bool v = System.Convert.ToBoolean(value);
                return v ? "Да" : "Нет";
            }
    }
    

    使用数据类型的一个示例是 Bool(Available)。

    <TextBlock x:Name="Available"  Margin="2"  Grid.Column="1" Style="{StaticResource BaseText}"  Text="{Binding Available,StringFormat=Есть товар в наличии:{0},Converter={converters:BoolToStringConverter}}" FontSize="18" FontWeight="Bold"  Foreground="Gray"  />
    
    • 0

相关问题

  • 在哪里可以查看可在 XAML 中使用的所有可用 WIRED 命名空间?

  • MVVM 数据收集的问题

  • 按钮样式。WPF

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    如何从列表中打印最大元素(str 类型)的长度?

    • 2 个回答
  • Marko Smith

    如何在 PyQT5 中清除 QFrame 的内容

    • 1 个回答
  • Marko Smith

    如何将具有特定字符的字符串拆分为两个不同的列表?

    • 2 个回答
  • Marko Smith

    导航栏活动元素

    • 1 个回答
  • Marko Smith

    是否可以将文本放入数组中?[关闭]

    • 1 个回答
  • Marko Smith

    如何一次用多个分隔符拆分字符串?

    • 1 个回答
  • Marko Smith

    如何通过 ClassPath 创建 InputStream?

    • 2 个回答
  • Marko Smith

    在一个查询中连接多个表

    • 1 个回答
  • Marko Smith

    对列表列表中的所有值求和

    • 3 个回答
  • Marko Smith

    如何对齐 string.Format 中的列?

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5