UWP DataContext 从 DataTempalte 到 DataTemplate 中的 UserControl
UWP DataContext from DataTempalte to UserControl in DataTemplate
我想使用 DataContext 将 DataTemplate 中的 ListViewItem 共享到 DataTemplate 中的 UserControl,我只花了两个小时完成这项任务,看了很多网站,但没有找到请求的答案,因为每次我想获取 DataContext,它为空。
短代码,我想做什么:
在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;
}
这是一个简单的 class:
public class Przystanki
{
public Przystanki self { get { return this; } }
public string name { get; set; }
}
问题是,总是在调用此 UserControl 时,DataContext 不是 "Przystanki" bot null。
问题是:如何将 DataContext 发送到此 UserControl?
UWP 的作用:
- 创建
MainWindowLinesInfoFirst
控件。
- 将其
DataContext
属性 设置为您需要的值。
显然,您不能在构造函数中读取 DataContext
属性,因为控件尚未创建并且 UWP 无法在创建之前设置 属性一个实例。
你想要的是在构造函数中订阅DataContextChanged
事件。当 UWP 设置它时,您会收到通知。
我想使用 DataContext 将 DataTemplate 中的 ListViewItem 共享到 DataTemplate 中的 UserControl,我只花了两个小时完成这项任务,看了很多网站,但没有找到请求的答案,因为每次我想获取 DataContext,它为空。
短代码,我想做什么:
在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;
}
这是一个简单的 class:
public class Przystanki
{
public Przystanki self { get { return this; } }
public string name { get; set; }
}
问题是,总是在调用此 UserControl 时,DataContext 不是 "Przystanki" bot null。
问题是:如何将 DataContext 发送到此 UserControl?
UWP 的作用:
- 创建
MainWindowLinesInfoFirst
控件。 - 将其
DataContext
属性 设置为您需要的值。
显然,您不能在构造函数中读取 DataContext
属性,因为控件尚未创建并且 UWP 无法在创建之前设置 属性一个实例。
你想要的是在构造函数中订阅DataContextChanged
事件。当 UWP 设置它时,您会收到通知。