我正在使用转换器类根据正常工作时间(40)显示一个名为 noofweeks 的属性,例如,如果存储在数据库中的值为 40,我将在 datagrid 列中显示 1,如果为 80,我将显示 2,这是我的 XAML 和转换器代码
<sdk:DataGridTemplateColumn Width="*" CanUserReorder="False" HeaderStyle="{StaticResource DataGridBaseHeaderStyle}" Header="FTE">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<TextBlock Text="{Binding Hours, Converter={StaticResource FTEConverter}}" VerticalAlignment="Stretch" Margin="4,2" HorizontalAlignment="Stretch"></TextBlock>
</Grid>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
<sdk:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{Binding Hours,Mode=TwoWay, Converter={StaticResource FTEConverter}}" VerticalAlignment="Top" Margin="4,2"
MaxLength="50" HorizontalAlignment="Stretch" >
</TextBox>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellEditingTemplate>
</sdk:DataGridTemplateColumn>
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == null)
return false;
else
{
// Assumes a RowType has been passed as the bound value
Double Hours= (Double)value;
return Math.Round(Hours/40,0);
}
}
所以数据库中的小时数分别为 80 和 120 的 UserID 1 和 2 的数据网格看起来像
UserID NoOfWeeks StandardHours(not visible to user)
1 2 80
2 3 120
这按预期工作正常,现在我想根据用户修改的 NoOfWeeks 更新数据库中的小时数。
例如在上表中,如果具有 UserID 的用户将 NoOfWeeks 更新为 4,我想将小时数保存为 160 (4 *40)。
UserID NoOfWeeks StandardHours(对用户不可见) 1 4 160 2 3 120 我对如何更新属性感到有些困惑?