WPF 모델로 머리를 감싸려고 노력합니다.WPF 기초 : DataTrigger에서 외부 속성을 설정하는 방법?
목록 상자 안에는 문자열 식별자가 있습니다.이 코드는 잘 작동합니다. 현재 선택된 항목의 식별자를 둘러싸는 제어를위한 내 숨김 코드에 액세스 할 수
나는이 있습니다.
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Width="320">
<Label Content="{Binding Path=ShortName}" Style="{StaticResource ListHeader}"/>
<TextBlock TextWrapping="Wrap" Text="{Binding Path=Description}" Style="{StaticResource ListText}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
을 그리고 난 내가 좋아하는 무언가를 추가해야한다고 생각 :
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBoxItem}},Path=IsSelected}" Value="True">
<Setter Property="" TargetName="">
<Setter.Value>
</Setter.Value>
</Setter>
</DataTrigger>
하지만 저는 외부 제어 (즉, 외부 세계)의 일부인 속성을 설정하는 세터를 설정하는 방법에 관해서는 분실했습니다. 어떻게 든이 거꾸로 생각한거야? 다음과 같이
CustomItem item = (CustomItem)listBox1.SelectedItem;
MessageBox.Show(item.ShortName);
그리고 당신의 XAML은 다음과 같습니다 : 당신이 목록 상자 외부에서 선택한 목록 상자 항목에 속성에 액세스하려는 경우
죄송합니다. 위의 ListBox.ItemTemplate에 StackPanel이 있습니다. – evilfred
안녕하세요 EvilFred 님, 제 Xaml을 귀하의 것으로 설정했지만 항목 모음에 개체 모음을 바인딩하고 있습니다. 목록 상자의 속성은 내가 추정한다. ListBox의 selecteditem 속성을 사용하면 UI 요소가 아닌 바인딩 된 객체에 액세스 할 수 있습니다. – Blounty
오, 이런. UI가 아닌 요소와 UI의 마법적인 분리는 사람들이 WPF에서 계속 이야기하고 있습니다. 감사! – evilfred