【发布时间】:2014-06-27 06:30:30
【问题描述】:
如何使用 IValueConverter 将字符串值转换为整数并返回?
- 我有一个由两个表组成的数据库;表 CompanyX 和表 DeptY。
- 表 CompanyX 具有字段 ID(int)、名字、姓氏、电子邮件、电话。
- Table DeptY 具有字段 pID(int)、角色。
- DeptY pID 是 CompanyX ID 的外键。每次我在 Combobox 中选择某人时,我都希望它在 DataGrid 中显示为他们的 ID。
这是我下面的 ItemTemplate:
<Application.Resources>
<DataTemplate x:Key="myTemplate">
<WrapPanel HorizontalAlignment="Stretch">
<TextBlock Text="{Binding FirstName}"/>
<Label />
<TextBlock Text="{Binding LastName}"/>
</WrapPanel>
</DataTemplate>
</Application.Resources>
这是我绑定到 ItemTemplate 的 Combobox:
<ComboBox Height="23" HorizontalAlignment="Right" Margin="0,90,267,0"
Name="comboID" ItemsSource="{Binding}" VerticalAlignment="Top"
Width="208" ItemTemplate="{StaticResource myTemplate}" />
还有一个显示:
<DataGridTemplateColumn x:Name="pIDColumn" Header="Person ID" Width="auto">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=pID, Converter= {StaticResource myConverter}}"/>
<DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn x:Name="rolesColumn" Header="Roles" Width="auto" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Roles}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
没有转换的IValueConverter!!
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string a = (string)value;
int b;
int.TryParse(a, out b);
return b;
}
public object ConvertBack(object value, Type targetTypes, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
【问题讨论】:
-
您的转换方法是否被调用(在其中设置断点)?
标签: c# wpf ivalueconverter