繁体   English   中英

从DataTempalte到DataTemplate中的UserControl的UWP DataContext

[英]UWP DataContext from DataTempalte to UserControl in DataTemplate

我想使用DataContext从DataTemplate共享一个ListViewItem到DataTemplate中的UserControl,我只花了两个小时完成这个任务,查看了很多站点,但没有找到请求的答案,因为每次我想获得DataContext,它都是null。

简短的代码,我想做的:

在Page.xaml中

<ListView Name="MainWindowLinesInfoListView1" IsItemClickEnabled="True" ItemClick="MainWindowLinesInfoListView1_ItemClick" Grid.Row="1" ItemsSource="{x:Bind pk1}" SelectionMode="Single">
       <ListView.ItemTemplate>
            <DataTemplate x:DataType="data:Przystanki">
                <local:MainWindowLinesInfoFirst DataContext="{x:Bind self}" />
            </DataTemplate>
        </ListView.ItemTemplate>
</ListView>

在UserControl中调用:MainWindowLinesInfoFirst

<Grid Margin="2" HorizontalAlignment="Center">
    <TextBlock x:Name="MainWindowLinesInfoListView1TextBlock" Foreground="Navy" HorizontalAlignment="Center" TextWrapping="Wrap" />
</Grid>

并在此UserControl的.cs中:

public MainWindowLinesInfoFirst()
{
    this.InitializeComponent();
    var a = this.DataContext as Przystanki;
}

这是一个简单的类:

public class Przystanki
{
    public Przystanki self { get { return this; } }
    public string name { get; set; }
}

问题是,总是在调用此UserControl时,DataContext不是“Przystanki”bot null。

问题是:如何将DataContext发送到此UserControl?

UWP的作用:

  1. 创建MainWindowLinesInfoFirst控件。
  2. 将其DataContext属性设置为所需的值。

显然,您无法在构造函数中读取DataContext属性,因为尚未创建控件,并且在创建实例之前UWP无法设置属性。

你想要的是订阅构造函数中的DataContextChanged事件。 当UWP设置它时,您将收到通知。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM