DataContextを使用して、DataTemplateのListViewItemをDataTemplateのUserControlに共有したいのですが、このタスクで2時間を費やすだけで、多くのサイトを見ていますが、 DataContextを取得したい、それはnullです。私は何をしたいかUWP DataContextからDataTemplateのUserControlへのUWP DataContext
ショートコード、:
のUserControlで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>
では、と呼ばれる:MainWindowLinesInfoFirst
<Grid Margin="2" HorizontalAlignment="Center">
<TextBlock x:Name="MainWindowLinesInfoListView1TextBlock" Foreground="Navy" HorizontalAlignment="Center" TextWrapping="Wrap" />
</Grid>
と、このユーザーコントロールの.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; }
}
問題は、このユーザーコントロールが呼び出されたときには常に、DataContextのは「Przystanki」ボットnullではないこと、です。
質問:このUserControlにDataContextを送信する方法?
まだnullです。使用して 'this.DataContextChanged + =(送信者、e)=> {var a = This.DataContextとしてPrzystanki; }; 'および' ' –
Niewidzialny
AH!それを捕まえて!ありがとう!私はちょうど使用された議論をしなかったし、私はisntヌルかどうかをチェックしなければならなかった'var a = e.NewValue as Przystanki;'と 'if(a!= null)ChangeText(a);そして、うまく動作します!私の主人; 3 – Niewidzialny
hah、新しい範囲:D – Niewidzialny