DataGrid 템플릿에 콤보 상자가 있습니다. 여기에 명령을 호출하는 이벤트 트리거가 있습니다. 명령이 내 기능을 호출하고 있음을 확인했습니다. 내 함수가 false를 반환하면 콤보 상자의 배경색을 노란색으로 설정하려고합니다. true를 반환하면 흰색으로 유지하고 싶습니다.WPF DataGrid 템플릿 열 콤보 상자 바인딩 표현식 오류
문제는 다음 절에있는 것으로 나타납니다
"Path=DataContext.ApplicationProfilesCollection[].ValidEnvironment"
를 내가 얻을 출력 창에서 :
현재 컬렉션의 3 개 항목이 있습니다. WFP가 각자를 어떻게 인식하는지 알아? XAML의 "[]"에 무엇이 들어 있습니까? 또한 - MVVM 패턴을 준수해야합니다."System.Windows.Data Error: 40 : BindingExpression path error: '[]' property not found on 'object' ''ObservableCollection`1' (HashCode=44314665)'. BindingExpression:Path=DataContext.ApplicationProfilesCollection[].ValidEnvironment; DataItem='ProfilesUserControl' (Name=''); target element is 'ComboBox' (Name=''); target property is 'NoTarget' (type 'Object')"
아래 XAML을 참조하십시오. 시간에 대한 감사합니다,
<DataTemplate DataType="models:ApplicationProfile">
<ComboBox ItemsSource="{Binding RelativeSource={RelativeSource
Mode=FindAncestor,
AncestorType={x:Type UserControl}},
Path=DataContext.DsnCollection}"
Validation.ErrorTemplate="{StaticResource ValidationTemplate}"
SelectedItem="{Binding DataSource, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=DataContext.ValidateDataSourceCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<ComboBox.Style>
<Style TargetType="ComboBox">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=DataContext.ApplicationProfilesCollection[].ValidEnvironment}" Value="false">
<Setter Property="ComboBox.Background" Value="Yellow"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ComboBox.Style>
</ComboBox>
ComboBox의 항목, 즉 DsnCollection의 항목에 ValidEnvironment 속성이 있습니까? 또는이 속성은 어디에 정의되어 있습니까? – mm8
데이터 모델을 표시해야합니다. 예외 메시지에 def가 표시되어 데이터 바인딩이 잘못되었습니다. – esiprogrammer
분명히 []]은 XAML에 쓸 수 없습니다. 정확히 무엇을하려고하는지 명확히 할 수 있습니까? 변환기를 사용해야한다고 생각하지만, 당신이하고 싶은 것이 확실하지 않습니다. – Kilazur