繁体   English   中英

IValueConverter进行收集

[英]IValueConverter for collection

我的ComboBoxes比绑定到我的Silverlight应用程序中int或double类型的集合要好。 这些集合保存可由用户选择的可能的有效值。 我还需要在ComboBox中有一个“自动”选项。 在我的代码中,我将“自动”表示为-1。 因此,我试图找到一种方法,可以获取一个int集合(该集合可能包含-1),并将一个ComboBox绑定到它,并使用IValueConverter使-1显示为“自动”。 我曾尝试在ItemsSource上的Binding中设置Converter,但在使用格式化选项创建新集合时遇到了麻烦。

我决定在发布此问题之前再尝试一次搜索,最后遇到了我的答案。 在这种情况下,关键是不要将IValueConverter用作ItemsSource绑定的转换器,而是要设置ItemTemplate(我以一种样式使用它):

<Style TargetType="ComboBox" x:Key="AutoComboBox">
    <Setter Property="ItemTemplate">
        <DataTemplate>
            <TextBlock Text="{Binding Converter={StaticResource autoConverter}}" />
        </DataTemplate>
    </Setter>
</Style>

autoConverter只是IValueConverter的简单实现,它检查值是否为-1,如果是,则返回“ Auto”。 反之亦然。

您好,下面的示例可能会为您提供帮助...。

将转换器绑定到控件:


<sdk:DataGridTextColumn x:Name =“ clientReturnStatus” Binding =“ {在clientreturns绑定,Converter = {StaticResource ReturnStatusConverter},ConverterParameter = ReturnStatus,Mode = TwoWay}”
标头=“返回状态”宽度=“ 110” />


转换方法:-

公共对象Convert(对象值,类型targetType,对象参数,System.Globalization.CultureInfo文化)

    {
        string Text = "";            

        if (value != null)
        {                
            if(value == -1)
            {
                  Text = "Auto";
            }
            else
            {

            }
        }
        return Text;
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM