これは非常に単純な質問のように思えるかもしれませんが、私はこれを理解できません (私は XAML を初めて使用します)。データテーブルにバインドして、コンボボックスにデータを入力しています。テーブルの主キーは S_ID です。SelectionChanged イベントで選択されたアイテムのこの値を取得する必要があるため、この値に基づいて詳細を読み込むことができます。int i = cboSites.SelectedItem を試しましたが、S_ID が int であっても型が一致しません。i をオブジェクト型に設定すると、デバッグ モードで DatarRowView の値を表示できますが、それ以外の方法でデータにアクセスすることはできません。私が間違っていることを教えてください。私は多くの調査を行いましたが、読んだコードは問題ないように見えますが、明らかにそうではありません! ちなみに、コンボボックスにはデータが完全に正常に入力されます。どうもありがとう。
C#
try
{
SqlDataAdapter sqlAd = new SqlDataAdapter();
SqlCommand sqlComm = new SqlCommand("SP_SelectAllSiteNamesForCust", sqlConn);
sqlComm.CommandType = System.Data.CommandType.StoredProcedure;
DataSet dSet = new DataSet();
sqlAd.SelectCommand = sqlComm;
sqlAd.Fill(dSet);
DataTable sitesTable = dSet.Tables[0];
cboSites.ItemsSource = sitesTable.DefaultView;
}
XAML
<ComboBox Height="28" IsEditable="True" Margin="630,15,28,10"
Name="cboSites" TabIndex="6"
ItemsSource="{Binding}"
DisplayMemberPath="S_Name"
SelectedItem="{Binding Path=S_ID}"
SelectionChanged="cboSites_SelectionChanged" />
SQL ストアド プロシージャ
SELECT
[S_ID],
[S_Name]
FROM
[dbo].[tbl_Site]
WHERE [C_ID] = @CUSTID