0

在我的 Silverlight 应用程序中,我有 ComboBoxes,而不是绑定到 int 或 double 类型的集合。这些集合包含用户可以选择的可能的有效值。我还需要在组合框中有一个“自动”选项。在我的代码中,我将“自动”表示为 -1。因此,我试图找到一种方法,可以获取整数集合(集合可能包含 -1)并将 ComboBox 绑定到它,并使用 IValueConverter 使 -1 显示为“自动”。我尝试在 ItemsSource 的绑定中设置转换器,但在使用格式化选项创建新集合时遇到问题。

4

2 回答 2

3

我决定在发布这个问题之前再尝试一次搜索,最后找到了我的答案。在这种情况下,关键是不要使用 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”。ConvertBack 反之亦然。

于 2012-09-10T20:26:45.727 回答
0

嗨,下面是可能对您有所帮助的示例....

将转换器绑定到控制:-


< sdk:DataGridTextColumn x:Name="clientReturnStatus" Binding="{Binding atclientreturns, Converter={StaticResource ReturnStatusConverter}, ConverterParameter=ReturnStatus ,Mode=TwoWay}"
Header="Return Status" Width="110"/>


转换方法:-

public object Convert(object value, Type targetType, object parameter,System.Globalization.CultureInfoculture)

    {
        string Text = "";            

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

            }
        }
        return Text;
    }
于 2012-09-11T09:45:04.870 回答