2012-03-13 82 views
1

我试图删除单元格的字符串格式,而我正在编辑它,因为它会导致副作用。实际上,当我编辑单元格时,它正在移动光标。在编辑datagrid中的单元格时删除stringFormat

这里是我的代码:

<DataGridTextColumn Width="15*" ElementStyle="{StaticResource RightAlignStyle}" 
Header="Coût (k€)" Binding="{Binding Path=TechnicalCostAmount, Mode=TwoWay, 
UpdateSourceTrigger=PropertyChanged, StringFormat=N0, ConverterCulture=fr-FR}"/> 

我想我做的EditingElementStyle性质的东西,但我不觉得在网络上什么关系吧。

希望你能帮助我。

干杯 托马斯

回答

4

我想你可以使用一个DataGridTemplateColumn:

<DataGridTemplateColumn Header="Coût (k€)"> 
     <DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding Path=TechnicalCostAmount, Mode=OneWay, StringFormat=N0, ConverterCulture=fr-FR}"/> 
     </DataTemplate> 
     </DataGridTemplateColumn.CellTemplate> 
     <DataGridTemplateColumn.CellEditingTemplate> 
     <DataTemplate> 
      <TextBox Text="{Binding Path=TechnicalCostAmount, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/> 
     </DataTemplate> 
     </DataGridTemplateColumn.CellEditingTemplate> 
    </DataGridTemplateColumn> 
+0

这是一个很好的方法,太。有很多不同的方法来适应这些要求。 – Jeremiah 2012-03-13 14:37:16

0

你有很多的选择。其中两个是:

  1. 更改绑定忽略的StringFormat并将其移动到您的视图模型/型号
  2. 创建一个自定义值转换器

更改您的结合是最简单的,但是至少可重复使用

<DataGridTextColumn 
    Width="15*" 
    ElementStyle="{StaticResource RightAlignStyle}" 
    Header="Coût (k€)" 
    Binding="{Binding Path=TechnicalCostAmount, Mode=TwoWay}"/> 
012:

更新在XAML绑定

然后在您的视图模型/型号:

public string TechnicalCostAmount 
{ 
    get { return string.Format("{0:n0}", _TechnicalCostAmount); } 
    set 
    { 
     Decimal.TryParse(value, _TechnicalCostAmount); 
     RaisePropertyChange("TechnicalCostAmount"); 
    } 
} 

创建自定义值转换器做同样的事情就像上面的代码,但它可以让你在多个地方使用它。

参见:http://wpftutorial.net/ValueConverters.html

相关问题