1

画像への URL を sql ce 3.5 データベースに文字列として保存しています。URL を取得して、メイン アプリケーション ウィンドウに表示したいと考えています。コードは次のとおりです。

DataSet myDataSet;

        private void OnInit(object sender, EventArgs e)
        {

            string connString = Properties.Settings.Default.SystemicsAnalystDBConnectionString;
            OleDbConnection conn = new OleDbConnection(connString);
            OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT url FROM Library;", conn);

            myDataSet = new DataSet();
            adapter.Fill(myDataSet, "Library");
            myListBox.DataContext = myDataSet;
        }

最初の問題は、メソッド onInit が起動されたとは思わないことです。しかし、その理由はわかりません。

2 番目の問題は、XAML ファイルにあります。画像用のコンテナー (テキスト ボックス用のリスト ボックスなど) が必要です。画像がいくつあるかわからないので、何らかのテンプレートが必要です。

                            <DataTemplate>
                                <StackPanel>
                                    <Image Source="{Binding Path=url}" />
                                </StackPanel>
                            </DataTemplate>

ただし、データ ソースに設定されたデータ コンテキストを持つ何らかの種類のコンテナーが必要です。

誰でも助けてもらえますか?

4

2 に答える 2

1

wpf のリストボックスをカスタマイズして、テキストの代わりに画像を入れるのは非常に簡単です。ItemTemplate を使用するか、コントロール自体に変更する場合は ControlTemplate を使用します。

于 2010-03-04T22:01:52.710 に答える
0
<ListBox ItemsSource="{Binding Library}">
  <ListBox.ItemTemplate>
    <DataTemplate>    
         <Image Source="{Binding Path=url}" />
     </DataTemplate>
  </ListBox.ItemTemplate>
 </ListBox>

ListBox の DataContext は、DataSet である必要があります。OnInit の代わりに OnLoad を使用できます

とにかく、DataSet バインディングはお勧めしません。ライブラリの ViewModel クラスを作成し、ライブラリ エンティティのコレクションを作成すると、より管理しやすくなります。

于 2010-03-04T22:29:56.927 に答える