WPF 프로젝트에서 작업 중이며 일부 스타일을 만들었습니다. 그 중 하나는 DataGridCell
스타일이며 제대로 작동합니다.부모가 제거 될 때 바인딩 오류가 발생하지 않도록하는 방법
내 문제는 다음과 같습니다. 사용자가 행을 삭제하면 Visual Studio의 출력 창에 많은 오류가 표시됩니다. 내가 할 수있는 일,
System.Windows.Data Warning: 4 : Cannot find source for binding with reference
'RelativeSource FindAncestor, AncestorType='System.Windows.Controls.DataGrid',
AncestorLevel='1''.
BindingExpression:Path=CanUserAddRows; DataItem=null; target element is 'DataGridCell'
(Name=''); target property is 'NoTarget' (type 'Object')
그래서, 나는 DataGridCell
이 DataGrid
에서 제거 될 때,하여 부모를 찾을 수없는 바인딩 때문에 오류가 추측 만 :
이 오류입니다 이러한 오류가 발생하지 않도록하려면 ?? 내말은, 바인딩을위한 조건을 어떻게 마련 할 수 있을까 ??
내 XAML 스타일 코드는 다음과 같습니다 :
<DataGrid Margin="6,25,6,35" x:Name="dataGrid">
<DataGrid.CellStyle>
<Style TargetType="{x:Type DataGridCell}">
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}, Path=CanUserAddRows}" Value="False" />
<Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsSelected}" Value="True" />
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="#A4A4A4"/>
</MultiDataTrigger>
. . . . .
희망 누군가가 사전에 감사 나를 도울 수 있습니다.
답장을 보내 주셔서 감사합니다. 저는 WPF에 새로 왔으며 질문이 있습니다.이 답변은 'Condition'의'Binding' 속성에 적용 할 수 있습니까 ?? – Dante
@ 단테 가능합니다. 이들은 Binding 클래스의 속성이므로 모든 Binding에서 작동합니다. ref에 대한 코드가 추가되었습니다. – akjoshi
안녕하세요 akjoshi, 그냥 당신이 제안한 것을 시도했지만 여전히 동일한 오류가 발생했습니다 – Dante