मैं एक ListBox
वर्ग के लिए एक DataTemplate
जोड़ लिया है करने के लिए अपने संग्रह बाध्य करने के लिए:करें ListBoxItem अगर ItemTemplate में पाठ बॉक्स ध्यान केंद्रित हो जाता है
<ListBox x:Name="lstEmails" Height="259" Margin="12,0,12,41" Width="276"
SelectionChanged="lstEmails_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Label Visibility="Hidden" Content="{Binding ID}"></Label>
<TextBox Width="200" Text="{Binding EmailAddress}"></TextBox>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
यह ठीक करता है कि मैं क्या करना चाहते हैं। हालांकि जब मैं TextBox
पर क्लिक करता हूं, ListBox
स्वचालित रूप से ListItem
को Selected
के रूप में सेट नहीं करता है। मैं इसे कोड में कर सकता था, लेकिन मैं इसे एक घटक के रूप में उपयोग करना पसंद करूंगा (तब वहां कोई आश्चर्य नहीं)।
इसे प्राप्त करने के तरीके पर कोई विचार?
ऐसा लगता है कि यह काम नहीं कर रहा है, यह मुझे किसी भी चीज़ पर क्लिक करने नहीं देगा। क्या मुझे कुछ याद आया है। मेरा नया एक्सएएमएल यहाँ है।
<UserControl.Resources>
<!--<TextBox x:Key="TB" x:Name="TextBoxInsideListBoxItemTemplate">
<TextBox.Style>-->
<Style TargetType="{x:Type TextBox}">
<Setter Property="IsHitTestVisible" Value="False" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type ListBoxItem}, AncestorLevel=1}}"
Value="True">
<Setter Property="IsHitTestVisible" Value="True" />
</DataTrigger>
</Style.Triggers>
</Style>
<!--</TextBox.Style>
</TextBox>-->
</UserControl.Resources>
<Grid>
<ListBox x:Name="lstEmails" Height="259" Margin="12,0,12,41" Width="276" SelectionChanged="lstEmails_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<!--<Label Visibility="Hidden" Content="{Binding ID}"></Label>-->
<TextBox Width="220" Text="{Binding EmailAddress}" >
</TextBox>
<!--<TextBox Width="220" Text="{Binding EmailAddress}" GotFocus="TextBox_GotFocus"></TextBox>-->
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Button Width="20" Margin="12,0,0,12" Name="btnAdd" VerticalAlignment="Bottom" Click="btnAdd_Click" Height="23" HorizontalAlignment="Left">+</Button>
<Button Width="20" HorizontalAlignment="Left" Margin="30,0,0,12" Name="btnRemove" VerticalAlignment="Bottom" Click="btnRemove_Click" Height="23">-</Button>
<Button Height="23" HorizontalAlignment="Right" Margin="0,0,12,12" Name="btnApply" VerticalAlignment="Bottom" Width="49" Click="btnApply_Click">Apply</Button>
</Grid>
मुझे लगता है कि क्लिक दो बार थोड़ा अच्छा कार्यक्षमता है।
शानदार! आज मुझे बचाया! –
यह एक अच्छा समाधान है, सिवाय इसके कि यह विस्तारित और एकाधिक चयन मोड के साथ अच्छी तरह से जाल नहीं है। – xvpower