Как получить значение из Listview со стековой панелью в wpf - PullRequest
0 голосов
/ 14 января 2019

У меня есть список, который заполняется с помощью стековой панели в wpf. Я хочу получить pooja_name каждой строки, когда кликаю по текстовому блоку со звездочкой.

<ListView x:Name="bookedlist" HorizontalAlignment="Left" Height="449" Margin="679,238,0,0" VerticalAlignment="Top" BorderBrush="#00828790" Background="Transparent" Focusable="False">
        <ListView.ItemTemplate>
            <DataTemplate>
                <StackPanel x:Name="stackkk" Orientation="Horizontal" >
                    <Border BorderThickness="0.5" BorderBrush="#FFB0AEAE">
                        <TextBlock Text="{Binding Pooja_name}" TextAlignment="Left" Margin="5" Width="250"/>
                    </Border>
                    <Border BorderThickness="0.5" BorderBrush="#FFB0AEAE">
                        <TextBlock Text="{Binding Name}" TextAlignment="Left" Margin="5" Width="250"/>
                    </Border>
                    <Border BorderThickness="0.5" BorderBrush="#FFB0AEAE">
                        <TextBlock Text="{Binding Star}" TextAlignment="Left" MouseLeftButtonDown="Star_function" Margin="5" Width="95"/>
                    </Border>
                </StackPanel>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

Listview заполняется с использованием модельного класса

public class Booked
    {
        public string Pooja_name { get; set; }
        public string Name { get; set; }
        public string Star { get; set; }
    }

и jsonarray

JArray bookedpoojalist = JArray.Parse(bookedval);
                List<Booked> booked = JsonConvert.DeserializeObject<List<Booked>>(bookedpoojalist.ToString());
                bookedlist.ItemsSource = booked;

Я хочу получить имя pooja, когда активирован текстовый блок MouseLeftButtonDown со звездообразным значением.

1 Ответ

0 голосов
/ 14 января 2019

Приведите DataContext аргумента sender к Booked:

private void Star_function(object sender, MouseButtonEventArgs e)
{
    TextBlock textBlock = (TextBlock)sender;
    Booked booked = textBlock.DataContext as Booked;
    if (booked != null)
    {
        string s = booked.Pooja_name;
        //...
    }
}
...