0
동일한 리소스 사전의 스타일에서 usercontrol의 리소스 사전에 정의 된 데이터 템플릿에 액세스해야하는 시나리오가 있습니다. 이 작동하지 않는WPF의 동일한 리소스 사전에서 리소스에 액세스
<UserControl.Resources>
<ResourceDictionary>
<DataTemplate x:Key="headertemp">
<WrapPanel>
<TextBlock Text="{Binding ProcedureName}"></TextBlock>
<Label Content="{Binding Status}"></Label>
</WrapPanel>
</DataTemplate>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Margin" Value="0,2,0,0"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Expander HeaderTemplate="{Binding Source={StaticResource headertemp}}">
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Detail}" HeadersVisibility="Column">
<DataGrid.Columns>
<DataGridTextColumn Header="Timestamp" Binding="{Binding TimeStamp}"></DataGridTextColumn>
<DataGridTextColumn Header="Name" Binding="{Binding ProcedureName}"></DataGridTextColumn>
<DataGridTextColumn Header="Details" Binding="{Binding Description}"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
다음 XAML 코드는 다음과 같이 보인다. 나는 datatemplate과 스타일이 모두 같은 '수준'에 정의되어 있기 때문에 문제가있을 것이라고 생각했습니다. 그러나, 내가 스타일을 저수준의 소스 화 된 사전으로 옮기더라도 그리드는 작동하지 않습니다. WPF 스타일에 익숙하지 않습니다. 현재와 다른 솔루션도 환영합니다. 감사.
일해야 당신이 "작동하지 않는"무엇을 의미합니까? 샘플 프로젝트에서 xaml 스 니펫을 복사했는데 제대로 작동합니다. 고정 된 문자열로 바인딩을 대체했습니다. 아마도 바인딩이 문제일까요? – SvenG
당신 말이 맞아요. 바인딩이 문제입니다. 나는 인터넷 검색 및 리소스 사전 내에서 바인딩 매우 간단하지 않은 것으로 나타났습니다. 누군가가 저를 도울 수 있다면 좋을 것입니다. 나는 코드를 통해 바인딩하고 싶지 않다. – Tulip