Konvertieren von string zu int mit IValueConverter
Wie kann ich konvertieren von string-Werten zu Ganzzahlen und zurück mit IValueConverter?
- Ich habe eine Datenbank besteht aus zwei Tabellen, Tabelle CompanyX und Tabelle DeptY.
- Tabelle CompanyX hat das Feld ID(int), Vorname, Nachname, E-Mail, Telefon.
- Tabelle DeptY hat Feld pID(int), Rollen.
- DeptY pID ist der Fremdschlüssel Auf CompanyX-ID. Jedes mal, wenn ich jemanden auswählen in der Combobox, ich will es anzeigen, deren ID in einem DataGrid.
Dies ist mein ItemTemplate unten:
<Application.Resources>
<DataTemplate x:Key="myTemplate">
<WrapPanel HorizontalAlignment="Stretch">
<TextBlock Text="{Binding FirstName}"/>
<Label />
<TextBlock Text="{Binding LastName}"/>
</WrapPanel>
</DataTemplate>
</Application.Resources>
Dies ist meine Combobox, die gebunden ist an die ItemTemplate:
<ComboBox Height="23" HorizontalAlignment="Right" Margin="0,90,267,0"
Name="comboID" ItemsSource="{Binding}" VerticalAlignment="Top"
Width="208" ItemTemplate="{StaticResource myTemplate}" />
Und ein DataGrid angezeigt:
<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, die nicht konvertieren!!
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();
}
Hat deine Convert-Methode get aufgerufen wird (einen Haltepunkt festlegen)?
InformationsquelleAutor AndyRoxxx | 2014-05-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Sie konvertieren falsch herum.
Convert()
nimmt die Bindung Quelle als input (int
in Ihrem Fall), und Ausgänge, was der xaml erwartet wird (string
).Aber Sie brauchen nicht einmal einen Konverter. Sie binden direkt an ein
int
und WPF automatisch einen call -ToString()
auf die zur Anzeige als text.Ich will nicht, um es anzuzeigen als text. Ich möchte die Anzeige im datagrid die ID der person, die ich bin, die Auswahl in der comboBox, z.B. wenn ich auf die Schaltfläche "hinzufügen", es sollte anzeigen, Die Personen-ID.
Was wollen Sie, um anzuzeigen, wie dann? die anderen Optionen sind entweder ein Bild(Zeichnung) oder Rauchzeichen.
Nun, wenn Sie wollen, um es anzuzeigen als eine ID - lassen Sie uns annehmen, du meinst TextBlock-nicht bearbeitet werden, text auf dem Bildschirm, dann loszuwerden, die Konverter und nur binden OneWay.ich.e.
{Binding Path=ID, Mode=OneWay}
Sorry XAMIMAX, Kann ich wieder erklären, das problem, dass
InformationsquelleAutor GazTheDestroyer