2012-06-05 6 views
0

은 내가 바인딩 할 List<SampleData>자동 완성 윈도우 폰 7

lstSelectedNumber.itemsource = List<SampleData>;

처럼 그리고 내 autocompletebox 내 컬렉션에 부착이

<ListBox Name="lstSelectedNumber" Height="50" MaxHeight="120" VerticalAlignment="Top" Grid.Column="1" SelectionChanged="lstSelectedNumber_SelectionChanged"> 
         <ListBox.ItemContainerStyle> 
          <Style TargetType="ListBoxItem"> 
           <Setter Property="Padding" Value="-15" /> 
           <Setter Property="Margin" Value="0"/> 
          </Style> 
         </ListBox.ItemContainerStyle> 
         <ListBox.ItemsPanel> 
          <ItemsPanelTemplate> 
           <toolkit:WrapPanel> 
           </toolkit:WrapPanel> 
          </ItemsPanelTemplate> 
         </ListBox.ItemsPanel> 
         <ListBox.ItemTemplate> 
          <DataTemplate> 
           <toolkit:AutoCompleteBox x:Name="acBox" FilterMode="StartsWith" ValueMemberBinding="{Binding Name,Mode=TwoWay}"> 
            <toolkit:AutoCompleteBox.ItemTemplate> 
             <DataTemplate> 
              <StackPanel Orientation="Horizontal"> 
               <Image Source="{Binding Image}" Stretch="None" Margin="0,0,5,5"/> 
               <TextBlock Text="{Binding Name}"/> 
              </StackPanel> 
             </DataTemplate> 
            </toolkit:AutoCompleteBox.ItemTemplate> 
           </toolkit:AutoCompleteBox> 
          </DataTemplate> 
         </ListBox.ItemTemplate> 
        </ListBox> 

Listbox처럼 내 WP7 페이지에 Listbox이 다른 컬렉션에 내 자동 완료 상자 그래서 사용자가 내 텍스트 상자에 입력하면 사용자에게 제안을 표시하고 일단 사용자가 다른 항목을 선택하면이 항목을 다른 컬렉션에 추가합니다 목록 나는 하나의 문제에 직면하고있다 : 어떻게 목록을 더 복잡한 절차를 수행 할 수있는 자동 완성 상자에 바인딩 할 수 있는가?

UPDATE

내가 이런 식으로 내 목록 상자 컨트롤을 찾기 위해 시도하고 있지만이 차일

private void SearchVisualTree(DependencyObject targetElement) 
     { 
      var count = VisualTreeHelper.GetChildrenCount(targetElement); 
      if (count == 0) 
       return; 

      for (int i = 0; i < count; i++) 
      { 
       var child = VisualTreeHelper.GetChild(targetElement, i); 
       if (child is AutoCompleteBox) 
       { 
        AutoCompleteBox myItems = (AutoCompleteBox)child; 

        if (myItems.Name == "acBox") 
        { 
         // My Logic 
         return; 
        } 
       } 
       else 
       { 
        SearchVisualTree(child); 
       } 
      } 
     } 

이 방법으로 내 페이지 생성자

에 전화 했어 항상 나 0을 반환
SearchVisualTree(this.lstSelectedNumber); 
+0

Shift 키에 문제가있는 것 같습니다. 간헐적으로 입력하는 모든 첫 번째 문자에 붙어있는 것 같습니다. 그걸 고쳐 줄게. –

답변

0
  List<WP7Phone> data = new List<WP7Phone>(); 

      foreach (lines l in result) 
      { 
       WP7Phone w7 = new WP7Phone(); 

       w7.Name = l.line.TrimStart(); 

       w7.Image = "images/thump.jpg"; 

       msg.Add(w7); 
      } 


      this.autoCompleteBox1.ItemsSource = data; 


    public class WP7Phone 
{ 
    public string Name 
    { 
    get; 
    set; 
} 
public string Image1 
{ 
    get; 
    set; 
} 

}

+0

Senthil Kumar이 질문에 대한 대답은 질문하지 않습니다. 문제는 데이터를 바인딩하는 방법입니다. 목록 상자 안의 텍스트 상자는 자동 완성되고 둘 다 다른 데이터 소스가 있습니다. 그리고 심지어 내가 원하는 자동 완성 상자의 이름을 호출하여 직접적인 DataSoutce 할당 내부의 ListBox의 DataTemplate –