2013-10-25 2 views
0

답변자가 비슷한 질문에 답변하려고했던이 사이트의 게시물을 발견했습니다. 게시물에 대한 링크는 다음과 같습니다. WPF ComboBox with IsEditable=“True” - How can I indicate that no match was found?사용자가 comboBoxItems 컬렉션에 포함 된 값만 입력하도록하십시오.

그래서 답변 번호를 따르려고했습니다. 1 주제 4 (user1234567). 나는 실수로 끝났다.

1) 목록에 ElementAt에 대한 정의가 없습니다. 아래 행에 :

if(textBox.Text != "" && items.ElementAt(i).StartsWith(textBox.Text)) 

나는 아래 줄을 사용하여 해당 오류를 해결하기 위해 노력 :

if(textBox.Text != "" && items[i].StartsWith(textBox.Text)) 

그래서 모든 컴파일 타임 오류가 사라집니다.

2)는 아래에 언급 된 줄에 런타임 오류가 발생합니다 :

items.Add(((ComboBoxItem)cbEffectOn.Items.GetItemAt(i)).Content.ToString()); 

오류는 말한다 : Cannot convert string to ComboBoxItem.

당신의 사람이 더 나은 솔루션이있는 경우 또는 제안하십시오 위의 오류를 해결할 수 있습니다.

업데이트 :

<ComboBox x:Name="cbEffectOn" IsEditable="True" 
      ItemsSource="{Binding Path=EffectName, 
      Mode=TwoWay, UpdateSourceTrigger=Default}" 
      Grid.Column="4" Grid.Row="5" KeyUp="myComboBox_KeyUp"/> 

업데이트 2 :

I : 여기

는 두 번째 문제의 해결책이 여기에

은 콤보 상자에 대한 XAML입니다 string을에 전송하려고했습니다. 첫 번째 시도에서3210. 하지만 지금은 ComboBox의 모든 항목이 string의 그래서 난 아래의 코드를 시도하고이 일 것을 알고 : 당신이 좋아 당신이 오류를 얻을 때, 당신이 그들을 해결하기 위해이 간단한 조언을 따를 수

items.Add(cbEffectOn.Items.GetItemAt(i).ToString()); 
+0

XAML 코드를 표시하십시오. –

+0

내 질문을 업데이트했습니다. 모든 XAML 코드가 필요하면 의견을 말하십시오. – Khushi

+0

당신이 사용하려고했던 답변에 어떤 문제가 있는지 모르겠다. 그냥 빈 WPF 프로젝트에 복사하여 붙여 넣기 만하면된다. ** no ** 오류로 잘 작동한다. –

답변

1

. 귀하의 첫 번째 오류는 ListElementAt에 대한 정의를 포함하고 있지 않습니다. 이 문제를 해결하려면 MSDN 웹 사이트로 이동하여 'ElementAt 메서드'를 검색하십시오. 실제로 검색 엔진에서 검색 할 수 있으며 검색 결과 맨 위에 MSDN 페이지가 표시되어야합니다. 이 경우는 Enumerable.ElementAt<TSource> Method 페이지입니다.

링크를 클릭하면이 ElementAt 방법은 System.Linq 네임 스페이스에있는 것을 볼 해당 페이지로 이동, 그래서 당신은 당신의 코드 여부에이를 추가 한 경우에 할 수있는 다음 일은 확인하는 것입니다 것입니다

items.Add(((ComboBoxItem)cbEffectOn.Items.GetItemAt(i)).Content.ToString()); 

: 다음 오류

using System.Linq; 

, ComboBoxItemstring을 변환 할 수 없습니다, 당신이해야 할 모든 코드를 살펴 보는 것입니다 ComboBoxItem에 무언가를 던지려는 것이 분명하지만 오류는 string이라고합니다.다시 살펴보면 메서드를 볼 수 있습니다.이 메서드는 값을 string으로 변환합니다. 그래서 제거해야할까요?

물론
items.Add(((ComboBoxItem)cbEffectOn.Items.GetItemAt(i)).Content); 

, 그것은 정확하게 당신이 당신의 Content 특성이 무엇인지에 따라 중 하나가 작동하지 않을 수 있습니다. 나머지 프로젝트와 함께 행운을 빈다.

+0

msdn을 볼 수있는 좋은 제안에 감사드립니다. 그 문서의 상단에 System.Linq 네임 스페이스를 사용하여 내 문제를 해결. 그러나 두 번째 해결책은 효과가 없습니다. 그 문제와 관련된 것을 발견하면 여기에서 업데이트 할 것입니다. 도와 줘서 고맙다. – Khushi

+0

두 번째 문제에 대한 해결책을 찾았으며 그에 대한 답을 편집했습니다. – Khushi

+0

다른 사람의 게시물에 새 정보를 추가하는 것은 일반적으로 좋지 않기 때문에 평판이 좋은 회원이 편집을 거부 한 것으로 보입니다. 따라서 저는 귀하의 편집 내용을 복사하여 귀하의 질문에 추가 할 수있는 자유를 얻었습니다. 앞으로이 웹 사이트에서는 자신의 질문에 업데이트를 추가하거나 자신의 대답을 추가하는 것이 바람직하지만 걱정할 필요는 없습니다. – Sheridan

관련 문제