Diskuze: WPF - DataGrid bindování
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 4 zpráv z 4.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Záleží jestli ten sloupec se jménem zaměstnance v DataGridu chceš mít
jen ke čtení, nebo bude editovatelný.
Pokud jen ke čtení, tak stačí použít Converter:
public sealed class EmployeeIdToNameConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
var employeeId = (int)value;
return Translator.getRealName(employeeId);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
Potom v okně to může vypadat nějak takto:
<Window x:Class="WpfApplication3.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local ="clr-namespace:WpfApplication3">
<Window.Resources>
<local:EmployeeIdToNameConverter x:Key="employeeIdToNameConverter"/>
</Window.Resources>
<Grid>
<DataGrid x:Name="dataGrid" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding employeeId, Converter={StaticResource employeeIdToNameConverter}}" IsReadOnly="True"/>
<DataGridTextColumn Binding="{Binding hours}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
Místo "WpfApplication3" si samozřejmě dáš svůj namespace.
To vypadá skvěle, přesně nějakou takovou věc jako přidání nějaké
vlastní logiky k bindování jsem hledal. Otestuju jakmile se k tomu dostanu
Jo tak funguje to skvěle, s WPF začínám, takže moc netuším k čemu
vlastně a jak se používají ty resources v xaml, ale funguje to no
Zobrazeno 4 zpráv z 4.