我将combobox选中的项目绑定到某个对象属性,我有另一个绑定到文本框的对象属性,当我选择组合框项目时,他的绑定对象属性更新对象属性绑定到文本框。 问题是如果我在组合框中选择了相同项目的两倍,文本框只会更新,第一个组合框选择不更改文本框。
这里是ViewModel:
public object Caption
{
get
{
return TemplateEl.Caption;
}
set
{
TemplateEl.Caption = ((TemplateField)value).FieldCaption;
FieldName = ((TemplateField)value).FieldName;
RaisePropertyChanged("Caption");
}
}
public string FieldName
{
get { return TemplateEl.FieldName; }
set
{
TemplateEl.FieldName = value;
RaisePropertyChanged("FieldName");
}
}
这里TextBox的xaml绑定到FiledName属性:
<dxg:GridColumn FieldName="FieldName" Header="Field Name" HorizontalHeaderContentAlignment="Center" Name="gridColumnFieldName">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<editors:TextEdit Name="txtEditFieldName" Margin="5,0,0,0" VerticalAlignment="Center" IsReadOnly="{Binding
Path=Data.IsFieldNameReadOnly,Mode=OneWay}" Text="{Binding Path=Data.FieldName,Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
我有绑定到Caption属性的ComboBox,当我从ComboBox中选择项目时,Caption更改FieldName值但绑定到FiledName的TextBox不更新。 但是,如果我第二次在ComboBox中选择相同的项目,则从FiledName属性更新TextBox。
更新 找到解决方案,在新版本的devexpress(v2011 vol 2.8)中,我需要将GridControl属性AllowLiveDataShaping设置为true。