簡體   English   中英

獲取選定的一個列表框項目的值

[英]get Values of one listbox item selected

我正在編寫 Windows 10 通用應用程序。 我有一個列表框:

<ListBox.ItemTemplate>
    <DataTemplate>
        <StackPanel Orientation="Horizontal">
            <TextBlock FontFamily="Segoe UI Symbol" Text="&#x26FD;" FontSize="25"/>
            <StackPanel Orientation="Vertical">
                <TextBlock Name="txtDate" Text="{Binding Date}" FontSize="15" Margin="20,0,0,0"/>
                <TextBlock Name="txtDitance" Text="{Binding Distance}" FontSize="15" Margin="20,5,0,0"/>
            </StackPanel>
            <TextBlock Name="txtPrice" Text="{Binding Price}" FontSize="15" Margin="30,0,0,0"/>
        </StackPanel>
    </DataTemplate>
</ListBox.ItemTemplate>

當我單擊列表框的一個項目時,如何獲取該項目的 txtDate 文本值? 我需要將所選項目的 txtDate 文本值作為字符串獲取。

我假設當您單擊列表框的一個項目時,您已經為此定義了處理程序。 現在在處理程序中,

private void handlr(object sender,SelectionChangedEventArgs e)
{
   var obj = e.OriginalSource.DataContext as YourBoundObjectType;
   // now do whatever you want with your obj
}

您可以使用 ListBox 的 SelectionChanged 事件和 SelectedItem 屬性來獲取所選項目。 由於您在 XAML 中使用了綁定,因此您可以將所選項目轉換為您的類以獲取 txtDate 文本值。 例如:

在您的 XAML 中

<ListBox x:Name="MyListBox" SelectionChanged="MyListBox_SelectionChanged">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <TextBlock FontFamily="Segoe UI Symbol" FontSize="25" Text="&#x26FD;" />
                <StackPanel Orientation="Vertical">
                    <TextBlock Name="txtDate" Margin="20,0,0,0" FontSize="15" Text="{Binding Date}" />
                    <TextBlock Name="txtDitance" Margin="20,5,0,0" FontSize="15" Text="{Binding Distance}" />
                </StackPanel>
                <TextBlock Name="txtPrice" Margin="30,0,0,0" FontSize="15" Text="{Binding Price}" />
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

在你的代碼隱藏中

private void MyListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    //suppose MyClass is the class you used in binding
    var selected = MyListBox.SelectedItem as MyClass;
    //Date is the property you bind to txtDate
    string date = selected.Date.ToString();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM