只要用戶退出某個字段,DataForms似乎就會更新其CurrentItem。即使AutoCommit = false,也會發生這種情況。該行爲的副作用是在用戶編輯數據時綁定到數據的其他控件更新,而不是當用戶單擊「確定」接受DataForm更改時。有沒有辦法修改該行爲,以便在用戶接受更改時將數據寫入CurrentItem?當RIA Services DataForm將更改發送到後臺對象時發生更改
編輯:這裏是大部分的XAML爲我使用的DataForm:
xmlns:DataFormControls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.DataForm.Toolkit"
<DataFormControls:DataForm x:Name="dataForm" AutoCommit="False" AutoEdit="False">
<DataFormControls:DataForm.EditTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<DataFormControls:DataField Label="Title">
<TextBox Text="{Binding Title, Mode=TwoWay}" Style="{StaticResource TextBoxStyle}"/>
</DataFormControls:DataField>
<DataFormControls:DataField Label="First Name">
<TextBox Text="{Binding FirstName, Mode=TwoWay}"/>
</DataFormControls:DataField>
<DataFormControls:DataField Label="Middle Name">
<TextBox Text="{Binding MiddleName, Mode=TwoWay}"/>
</DataFormControls:DataField>
<DataFormControls:DataField Label="Last Name">
<TextBox Text="{Binding LastName, Mode=TwoWay}"/>
</DataFormControls:DataField>
</StackPanel>
</DataTemplate>
</DataFormControls:DataForm.EditTemplate>
</DataFormControls:DataForm>
編輯2:我使用的是避免這種行爲的解決方法是使對象的副本進行編輯並將其設置爲DataForm.CurrentItem屬性,然後如果用戶接受編輯,則數據將被複制回原始對象。我希望有更好的解決方案。
我有點困惑你的問題。數據表單不是RIA的一部分。你在編輯一個DomainDataSource嗎?我們可以看到一些示例xaml嗎? – Jeremiah 2009-09-22 18:41:01
對不起,我添加了一些Xaml。 DataForm是.NET RIA Services框架的一部分 - 我正在使用2009年7月份的RIA Services的CTP。 – 2009-09-22 19:36:13