2010-02-24 6 views
3

위아래로 검색을 시도했지만 아무 것도 찾을 수 없습니다. 나는 listview에 콤보 박스를 가지고있다. listview는 datacontext가 바인드 된 컨트롤러를 통해 노출 된 객체 목록에 바인딩됩니다. 목록에있는 항목의 속성 중 하나는 문자열입니다. 나는 그 가치를 콤보 상자에 묶어 놓으려고 노력하고있다. 여기 WPF 콤보 상자에 SelectedValue를 바인딩합니다.

는 문자열 인 속성이라고 선 종류를 가지고 나는 그런

private List<OrderLine> orderLines; 
    public List<OrderLine> OrderLines 
    { 
     get { return orderLines; } 
     set 
     { 
      if (value == orderLines) 
       return; 

      orderLines= value; 

      OnPropertyChanged("OrderLines"); 
     } 
    } 

같은 속성이라고 OrderLines와 OrderLine에있는 컨트롤러에서 내 목록보기

<ListView ItemsSource="{Binding Path=OrderLines}" > 

      <ListView.View> 
       <GridView> 
        <GridViewColumn Header="Item Type" Width="Auto"> 
         <GridViewColumn.CellTemplate> 
          <DataTemplate> 
           <ComboBox Width="100" SelectedItem="{Binding Path=LineType,ValidatesOnDataErrors=True}" > 

            <ComboBoxItem>Type1</ComboBoxItem> 
            <ComboBoxItem>Type2</ComboBoxItem> 
            <ComboBoxItem>Type3</ComboBoxItem> 
            <ComboBoxItem>Type4</ComboBoxItem> 
           </ComboBox> 
          </DataTemplate> 
         </GridViewColumn.CellTemplate> 
        </GridViewColumn>  
       </GridView> 
      </ListView.View> 

의 조각입니다 값을 포함합니다.

private string lineType; 
    public string LineType 
    { 
     get { return lineType; } 

     set 
     { 
      lineType= value; 
      OnPropertyChanged("LineType "); 
     } 
    } 

선택한 항목/값이 설정되지 않는 이유를 설명하는 사람은 누구든지 도움을 줄 수 있습니까? 내 콘텐츠가 하드 코딩 된 것과 관련이 있습니까? 당신의 도움을 주셔서 감사합니다.

답변

4

LineType이 문자열이고 ComboBox에 ComboBoxItems 및! = ComboBoxItem이라는 문자열이 포함되어 있기 때문에 바인딩되지 않은 것 같습니다. 시스템이 mscorlib에에

+0

덕분에 많은 시스템을 참조하는 네임 스페이스가

<ComboBox> <system:String>Item1</system:String> <system:String>Item2</system:String> </ComboBox> 

함께

보십시오 뭔가. 그게 효과가 있었어. –

관련 문제