먼저 내 목표를 설명해 드리겠습니다 : 시작, 종료 및 시간의 3 가지 속성을 가진 개체를 만들었습니다. 나는 이러한 속성의 8의 ObservableCollection에를 만들었습니다, 그래서 다음과 같습니다컬렉션 속성의 표시 값을 콤보 상자에 바인딩
//C#
internal class MyObjects : ObservableCollection<MyObjectSetting>
{
public MyObjects()
: base()
{
Add(new MyObjectSetting(
start1,
end1,
time1);
Add(new MyObjectSetting(
start2,
end2,
time2);
(etc)
}
}
선택 상자는 "start1과 같을 것이다, 그래서 나는이 8 객체에 나열된 개별 속성에 바인딩 3 개 선택 상자를 가지고 싶습니다 , start2, ... start8 ","end1, end2, ... end8 ".
다음 코드는 ComboBox를 개체 자체에 성공적으로 바인딩하지만 각 콤보 상자의 개별 속성에 액세스하는 방법에 대해서는 불안합니다.
// WPF
<Grid>
<Grid.Resources>
<local:MyObjects x:Key="myMyObjects"/>
</Grid.Resources>
<ComboBox x:Name="cbxStartPosition"
Grid.Row="0"
Grid.Column="3"
ItemsSource="{Binding Source={StaticResource myMyObjects}}"
>
</Grid>
은 누군가가 나를 콤보 상자에 표시된 표시 값에 컬렉션에 저장된 객체의 속성을 바인딩하는 방법을 결정하는 데 도움이 수 있습니까?
는I는 다음과 같이 MSDN here에 ListBoxinvestigating MultiBinding 샘플위한 DataTemplate을 첨가했는데,보다 오류가 발생했습니다
//WPF
<DataTemplate x:Key="StartPositionTemplate">
<ListBox>
<MultiBinding Converter="{StaticResource myNameConverter}">
<Binding Path="FirstName"/>
<Binding Path="LastName"/>
</MultiBinding>
</ListBoxItem>
</DataTemplate>
에러 32 종류의 값 '의 DataTemplate'는 첨가 할 수없는 'UIElementCollection'형식의 컬렉션 또는 사전에 추가하십시오.
내 오류가 XAML 섹션에 없었기 때문에이 오류가 발생했습니다. 미래의 HTH 사람들. 아래의 답변에 따라 DataTemplate을 사용하는 것이 좋습니다. DataTemplate을 갈 방법이 아닌 경우
, 사람이 접근 할 수있는 더 좋은 방법이 될 것입니다 무엇을 알 수 있습니까? 당신은 단지 속성의 문자열 값을 표시하려는 경우
이것은 정확히 내가 찾던 내용입니다. 대단히 감사합니다. 두 번째 복잡한 시나리오를 사용하여 ItemTemplate을 자세히 살펴보고 향후 작업을 이해할 수 있도록하겠습니다. 잘 했어! – CrimsonX