2012-01-19 58 views
1

我的應用程序正在使用自我跟蹤實體&我從WCF服務獲取我的數據。在我的WCF服務查詢中,我使用.Include(「」)來加載實體關係和我的查詢。自我跟蹤實體ListView綁定丟失值更改

public List<IndividualDisability> GetIndividualDisabilities() 
    { 
     using (var context = new ADATrackingEntities()) 
     { 
      return context.IndividualDisabilities.OfType<IndividualDisability>().Include("ADACode").ToList(); 
     } 
    } 

然後我將結果添加到ICollectionView。我有一個綁定到ICollectionView的ListView,我的ListView中的一些列綁定到來自我的實體關係的值。我有一個主要細節設置,綁定到我正在編輯的實體對象的當前項目。

<ListView Margin="0,0,10,0" MaxHeight="400" MaxWidth="300" HorizontalAlignment="Left" AlternationCount="2" ItemsSource="{Binding Path=IndividualDisabilitiesSource}" IsSynchronizedWithCurrentItem="True" SelectedItem="{Binding Path=CurrentIndividualDisability, Mode=TwoWay}" SelectionMode="Single" ItemContainerStyle="{DynamicResource ListViewItemContainerStyle}"> 
    <ListView.View> 
     <GridView> 
      <GridViewColumn Header="Case #" Width="Auto" 
       DisplayMemberBinding="{Binding Individual.CaseNumberShort}" /> 
      <GridViewColumn Header="LName" Width="Auto" 
       DisplayMemberBinding="{Binding Individual.LastName}" /> 
      <GridViewColumn Header="FName" Width="Auto" 
       DisplayMemberBinding="{Binding Individual.FirstName}" /> 
      <GridViewColumn Header="ADA Code" Width="Auto" 
       DisplayMemberBinding="{Binding ADACode.ADACodeDesc}" /> 
     </GridView> 
    </ListView.View> 
</ListView> 

的問題是,在我的編輯部分我使用的是組合框來改變從選定的記錄中的值及其在我的ListView相關的值更改爲小區中的空值。我可以重新顯示的唯一方法是返回數據庫並重新加載數據。有沒有我的組合框或列表視圖綁定丟失?

<ComboBox Height="25" Width="200" ItemsSource="{Binding ADACodesSource}" 
    DisplayMemberPath="ADACodeDesc" SelectedValuePath="ADACodeID" 
    SelectedValue="{Binding Path=CurrentIndividualDisability.ADACodeID, Mode=TwoWay, 
    NotifyOnValidationError=True, ValidatesOnDataErrors=True}" /> 
+0

如果在輸出控制檯的外觀,而這種代碼運行,你看到任何有約束力的錯誤? –

+0

看起來您只是爲要更改的媒體資源設置不同的ID。你是否正在處理更改屬性設置器中的實際對象(ADACode)? 我可能將SelectedItem與'ADACode'綁定,而不是使用'ADACodeId綁定的SelectedValue/SelectedValuePath。 相同DisplayMemberPath。 –

+0

我沒有看到任何綁定錯誤,但是當我使用SelectedItem綁定時,它實際上正確地在列表視圖中正確更改了值。但是,它現在不在組合框中設置值。我也有TwoWay綁定設置。有任何想法嗎? – ccorrin

回答

0

我還沒有能夠使用組合框工作,所以我決定創建一個自定義控件。它的一個AutoComplete/ComboBox似乎具有正確的綁定類型。一切都與此控件在這篇博客中詳述的偉大工程:

http://weblogs.asp.net/dwahlin/archive/2009/07/06/creating-an-combobox-style-autocompletebox-control-in-silverlight.aspx

+0

對於使用普通組合框控件的人有這個問題。我通過在組合框屬性中設置IsSyncronizedWithCurrentItem = true來修復它。現在所有人都在工作。 – ccorrin