标签: converter

WPF - 将一个控件的值传递给Converter以在另一个控件上设置宽度

我想根据容器的宽度设置TextBlock的宽度减去TextBlock上设置的边距.

这是我的代码

<TextBlock x:Name="txtStatusMessages" 
           Width="{Binding ElementName=LayoutRoot,Path=ActualWidth }"
                   TextWrapping="WrapWithOverflow" 
           Foreground="White" 
           Margin="5,5,5,5">This is a message
</TextBlock>
Run Code Online (Sandbox Code Playgroud)

这很有效,除了由于Left和Right Margins bbeing设置为5而TextBlock为10个单位太大的事实.

好的,所以我想......让我们使用转换器.但我不知道如何传递容器控件的ActualWidth(参见上图:LayoutRoot).

我知道如何使用转换器,甚至是带参数的转换器,只是不是像......参数ElementName = LayoutRoot,Path = ActualWidth

例如,我无法完成这项工作......

Width="{Binding Converter={StaticResource PositionConverter},  
       ConverterParameter={Binding ElementName=LayoutRoot,Path=ActualWidth }}"
Run Code Online (Sandbox Code Playgroud)

我希望我已经说清楚了,希望你可以提供帮助,因为Google今晚对我毫无帮助.

TIA!

道格

data-binding wpf binding converter

12
推荐指数
2
解决办法
3万
查看次数

是否可以在WPF中为静态资源提供类型转换器?

我有一个新手WPF问题.

想象一下,我的用户控件有一个名称空间声明,如下所示:

xmlns:system="clr-namespace:System;assembly=mscorlib"
Run Code Online (Sandbox Code Playgroud)

我有这样的用户控制资源:

<UserControl.Resources>
    <system:Int32 x:Key="Today">32</system:Int32>
</UserControl.Resources>
Run Code Online (Sandbox Code Playgroud)

然后在我的用户控件的某处我有这个:

<TextBlock Text="{StaticResource Today}"/>
Run Code Online (Sandbox Code Playgroud)

这将导致错误,因为它Today被定义为整数资源,但Text属性需要一个字符串.这个例子是人为的,但希望能说明这个问题.

问题是,如果我的资源类型与属性类型完全匹配,我有没有办法为我的资源提供转换器?类似于IValueConverter的绑定或类型转换器.

谢谢!

wpf converter staticresource

12
推荐指数
1
解决办法
6541
查看次数

JSF Converter的错误消息中的自定义变量

我有一个表单页面,其中包含一个接受日期的inputText字段.我们有一个转换器将字符串从文本框转换为Date对象(即"2011-03-01"到java.util.Date("2011-03-01""))

如果字符串不是日期,如"123",则会显示验证错误消息,如"value(123)必须是日期".

目前,在我的.properties文件中,我看到:

javax.faces.converter.DateTimeConverter.DATE = value({0})必须是日期

我需要通过准确指定哪个字段必须是日期来使此错误消息更加清晰.(因为表单上可能有多个日期文本字段).

我想将其更改为:

javax.faces.converter.DateTimeConverter.DATE =值为{1}的字段"{0}"必须是日期

但是,我不确定JSF如何自动填写{0}和{1}.如何在JSF Converter错误消息中指定自己的变量?

注意:我添加了尝试创建自己的验证器(不要与转换器混淆)但似乎JSF框架在其生命周期中的验证之前进行转换.

validation jsf converter

12
推荐指数
1
解决办法
2万
查看次数

需要用于货币转换的API

请建议用于货币转换的API,它返回JSON或小尺寸的html.我使用http://www.google.com/finance/converter?a=1&from=RUB&to=USD返回11 kb的HTML.我在我的iOS应用程序中使用它.

提前致谢!

currency converter

12
推荐指数
7
解决办法
5万
查看次数

我应该使用WPF转换器还是触发器?

我想知道你如何决定何时使用converters以及何时使用triggers.我更喜欢在GUI上使用触发器来操作(比如显示/隐藏控件,改变它们的外观等).

前段时间我使用了一个BooleanToVisibilityConverter用于此目的,但现在,我只是不需要它,我做所有与visibility使用触发器相关的事情,我甚至开始思考" 由MS团队创建一个目的是什么BooleanToVisibilityConverter?" .通常,当我有可能尝试使用声明方式编写代码时 - 在本例中 - XAML.

你对此有何看法?

.net wpf xaml triggers converter

12
推荐指数
1
解决办法
3342
查看次数

如何在Java中将浮点数转换为4个字节?

我无法转换这样的东西:

byte[] b = new byte[] { 12, 24, 19, 17};
Run Code Online (Sandbox Code Playgroud)

进入这样的事情:

float myfloatvalue = ?;
Run Code Online (Sandbox Code Playgroud)

有人可以举个例子吗?

另外如何将浮动转回字节?

java byte converter

12
推荐指数
2
解决办法
2万
查看次数

如何将String数组转换为Byte数组?(Java)的

我有一个一维的String数组,我想转换成一维字节数组.我该怎么做呢?这需要ByteBuffer吗?我怎样才能做到这一点?(字符串可以是任意长度,只是想知道如何进行这样的操作.在将它转换为字节数组后,我怎么能将它转换回String数组?

-担

java arrays bytebuffer bytearray converter

12
推荐指数
1
解决办法
5万
查看次数

WPF触发VS Converter

哪个更好地使用性能?与触发器相比,转换器的限制与反之亦然.我应该限制转换器的使用,因为它会导致类爆炸吗?

wpf triggers converter c#-4.0

12
推荐指数
2
解决办法
3577
查看次数

自定义JsonConverter WriteJson不会改变子属性的序列化

我总觉得JSON序列化程序实际遍历整个对象的树,并在它遇到的每个接口类型对象上执行自定义JsonConverter的WriteJson函数 - 不是这样.

我有以下类和接口:

public interface IAnimal
{
    string Name { get; set; }
    string Speak();
    List<IAnimal> Children { get; set; }
}

public class Cat : IAnimal
{
    public string Name { get; set; }
    public List<IAnimal> Children { get; set; }        

    public Cat()
    {
        Children = new List<IAnimal>();
    }

    public Cat(string name="") : this()
    {
        Name = name;
    }

    public string Speak()
    {
        return "Meow";
    }       
}

 public class Dog : IAnimal
 {
    public string Name { get; …
Run Code Online (Sandbox Code Playgroud)

c# serialization json converter json.net

12
推荐指数
1
解决办法
2万
查看次数

在C++中将十六进制转换为整数的最快方法是什么?

我正在尝试尽快将十六进制转换char为整数.

这只是一行: int x = atoi(hex.c_str);

有更快的方法吗?

在这里,我尝试了一种更加动态的方法,而且速度稍快一些.

int hextoint(char number) {
    if (number == '0') {
        return 0;
    }
    if (number == '1') {
        return 1;
    }
    if (number == '2') {
        return 2;
    }
    /*
     *  3 through 8
     */
    if (number == '9') {
        return 9;
    }
    if (number == 'a') {
        return 10;
    }
    if (number == 'b') {
        return 11;
    }
    if (number == 'c') {
        return 12;
    }
    if (number == 'd') …
Run Code Online (Sandbox Code Playgroud)

c++ performance parsing hex converter

12
推荐指数
4
解决办法
4364
查看次数