在我的 Silverlight 应用程序中,我有 ComboBoxes,而不是绑定到 int 或 double 类型的集合。这些集合包含用户可以选择的可能的有效值。我还需要在组合框中有一个“自动”选项。在我的代码中,我将“自动”表示为 -1。因此,我试图找到一种方法,可以获取整数集合(集合可能包含 -1)并将 ComboBox 绑定到它,并使用 IValueConverter 使 -1 显示为“自动”。我尝试在 ItemsSource 的绑定中设置转换器,但在使用格式化选项创建新集合时遇到问题。
2 回答
我决定在发布这个问题之前再尝试一次搜索,最后找到了我的答案。在这种情况下,关键是不要使用 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 反之亦然。
嗨,下面是可能对您有所帮助的示例....
将转换器绑定到控制:-
< 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;
}