1

私は銀色でもっとも大変な努力をしていますが、簡単な作業のためにハードルにつかまっています。私はアドレスをリストする私のメインフォーム上のメインDataGridを持っています。私はその後、国のルックアップを行うコンボボックスでこれらのアドレスを編集できるようにする子ウィンドウを持っています。私は、AdreessDomainDataSourceとCountryDomainDataSourceを持っています。 私は次のようにコードで自分の子ウィンドウに私のコンボボックスを持っている:私は、リスト内の別の項目に変更したときにこれは正しく書き戻すSilverlight childwindowのコンボボックスの参照

  <riaControls:DomainDataSource AutoLoad="True" d:DesignData="{d:DesignInstance my:Country, CreateList=true}" Height="0" Name="CountryDomainDataSource" QueryName="GetCountriesQuery" Width="0"> 
     <riaControls:DomainDataSource.DomainContext> 
      <my:CountriesContext /> 
     </riaControls:DomainDataSource.DomainContext> 
    </riaControls:DomainDataSource> 


    <riaControls:DomainDataSource AutoLoad="False" d:DesignData="{d:DesignInstance my:Address, CreateList=true}" Height="0" Name="AddressDomainDataSource" QueryName="GetAddressQuery" Width="0" LoadDelay="10000"> 
     <riaControls:DomainDataSource.DomainContext> 
      <my:AddressContext /> 
     </riaControls:DomainDataSource.DomainContext> 
     <riaControls:DomainDataSource.QueryParameters> 
      <riaControls:Parameter ParameterName="intAddressID" /> 
     </riaControls:DomainDataSource.QueryParameters> 
    </riaControls:DomainDataSource> 



    <Grid DataContext="{Binding ElementName=AddressDomainDataSource, Path=Data}" HorizontalAlignment="Left" Margin="63,27,0,0" Name="Grid1" VerticalAlignment="Top"> 

が、上のそれは常に最初の項目に置き換えられて起動CountryDomainDataSourceリスト。私はweb.g.vbコードにブレークポイントを設定しました。そして、intCountryIDは起動時に正しく設定されていますが、戻ってすぐにリストの最初の値で上書きされているようです。私はこの値を私のCountryDomainDataSourceリストの最初の値に設定するコードを書いていませんか? CountryDomainDataSource_LoadedDataイベントが終了した後、そこにcountryidが設定されているようです。私のCountryDomainDatasourceを最初にロードし、次にAddressDomainDatasourceを2番目にするか、私はこれ以上頭を傷つけているので、何かばかげたやり方をしていますか?

ご協力いただければ幸いです。

おかげで、それをオートローディングを停止し、CountryDomainDataSource_LoadedDataイベントからAddressDomainDatasourceのLoad()をトリガするAddressDomainDatasource上

答えて

0

DDSがデータを正常に読み込むと、リスト内の最初の項目が選択されます。この理由のため(他のものの中でも)、コンボボックスの設定には使用しないことをお勧めします。ここには、Jeffと私が合理的なやり方とより良い選択肢を説明する2つの記事があります。

+0

あなたの提案に従い、ComboBoxExtensionを使用しましたが、おそらく私のDomaincontextsとAsyncとAsyncEagerモードでいくつかの問題が発生しているようです。私はAsyncEagerで実行する場合、私はちょうど単一のID参照値を取得します。非同期で実行すると何も得られません。ですから、ドメインコントローラの共有を行うかどうかはわかりません。子ウィンドウのグリッドのDataContextを、親ウィンドウのデータグリッドの現在選択されているエンティティアイテムと同じに設定します。 – Oly

+0

次に、childwindow.ResourcesでCountryContext Lookupを宣言してから、ComboBoxDataSourceを自分のコンボのすぐ上に配置します。今度はDomainContextの共有について言及しました。どうすればこのことに行きますか?私は少し混乱しています。ありがとうございました – Oly

+0

これを実行すると私のコードにブレークポイントが置かれ、私のDomainServiceで自分のOperationNameを呼び出すようには見えません。これはフォームの起動時に実行する必要がありますか?Thanks、Oly – Oly

0

設定AutoLoad="False"

また、AddressDomainDatasourceのLoadDelayを設定するだけでもかまいません(より簡単なオプションかもしれません)。

+0

私はそれを試してみました、その、まだ最初のアドレスをロードします。私はAddressDomainDataSourceにグリッドのdatacontextをバインドしている可能性があります。私のコードの例は以下の通りです: – Oly

+0

申し訳ありません私は以下のように私はcouldntのため、上記のコードを掲載しました。また、loadDelayは動作していないようです。他のアイデア?助けてくれてありがとう – Oly

+0

私はさらにチェックして、私は自分の思い出しが私があなたのアイデアに従って、完璧に働いたCountryDomainDataSource_LoadedDataからAddressDomainDatasourceの読み込みを引き起こしたので、私はどこか他の場所に読み込んでいたということを発見しました。 Cheers – Oly

関連する問題