2010-03-04 7 views
1

SQL Sql 3.5 데이터베이스의 이미지에 URL을 문자열로 저장합니다. URL을 검색하여 기본 애플리케이션 창에 표시하고 싶습니다. 다음은 코드입니다.이미지 템플리트 용 WPF 컨테이너

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 메서드가 실행되지 않는다고 생각하는 것입니다. 그러나 나는 그 이유를 모른다.

두 번째 문제는 XAML 파일 때문입니다. 나는 (텍스트 상자의 목록 상자 등) 이미지 컨테이너를 필요로하고 내가 템플릿의 일종이 필요 얼마나 많은 이미지를 알 수 없습니다 이후 :

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

을하지만 용기의 일종이 있어야한다 datacontext가 데이터 소스로 설정됩니다.

아무도 도와 줄 수 있습니까?

답변

1

wpf의 목록 상자를 텍스트 대신 이미지가 포함되도록 매우 쉽게 사용자 정의 할 수 있습니다. ItemTemplate을 사용하거나 ControlTemplate을 제어하기 위해 변경하려면 ControlTemplate을 사용하십시오.

+0

감사를 당신의 라이브러리에 대한 뷰 모델 클래스를 생성 및 라이브러리 개체의 컬렉션을 만들 경우 더 관리 가능한 것, 나는 데이터 집합 바인딩 추천 해달라고 어쨌든하는 OnInit

대신의 OnLoad를 사용할 수 있습니다. 하지만 onInit() 메서드를 호출하는 방법을 알고 있습니까? 창이 열리면 데이터베이스에서 데이터를 가져와야합니다. – EVA

0
<ListBox ItemsSource="{Binding Library}"> 
    <ListBox.ItemTemplate> 
    <DataTemplate>  
     <Image Source="{Binding Path=url}" /> 
    </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

ListBox의 DataContext는 DataSet이어야합니다. 당신은 당신이, 토니