gpt4 book ai didi

c# - 如何从列表框中选定的 TextBlock 元素中提取值?

转载 作者:太空宇宙 更新时间:2023-11-03 11:36:15 26 4
gpt4 key购买 nike

我正在使用 ListBox 显示 Dictionary<> 对象中包含的所有值:

<ListBox Height="519" x:Name="ContactsListBox" Width="460" Margin="0,0,0,0" SelectionChanged="ContactsListBox_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Key}" Margin="5" Foreground="{StaticResource PhoneAccentBrush}"/>
<TextBlock x:Name ="LastNameData" Text="{Binding Value}" Margin="20, 0" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

内容由以下代码填充:

Dictionary<long, Contact> contacts = new Dictionary<long, Contact>();
this.ContactsListBox.ItemsSource = contacts;

现在,我想“知道”当前选择了 ListBox 中的哪个特定“Contact”,或者通过知道它的 Key,或者只是通过从“LastNameData”TextBlock 中提取值。

我试过这样做,但显然行不通:

private void ContactsListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ListBox lb = this.ContactsListBox.SelectedItem as ListBox;
this.Test_SomeOtherTextBlock.Text = lb.ToString();
}

非常感谢您的帮助!

最佳答案

您甚至可以执行以下操作:

<ListBox Height="519" x:Name="ContactsListBox" Width="460" Margin="0,0,0,0" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Key}" Margin="5"/>
<TextBlock x:Name ="LastNameData" Text="{Binding Value}" Margin="20, 0" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Grid DataContext="{Binding ElementName=ContactsListBox, Path=SelectedItem}" Margin="0,470,0,0">
<TextBlock Text="{Binding Value}"/>
</Grid>

所以你不需要代码隐藏...

BR,

张杰

关于c# - 如何从列表框中选定的 TextBlock 元素中提取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6213669/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com