私は期待どおりに簡単なContentPresenter
を動作させるのに問題があります。私はContentPresenter
がちょうどTextBlock
Text
とプロパティを作成することを期待ContentPresenterはどのようにUWPで動作しますか?
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
this.DataContext = new ViewModel();
}
}
public class ViewModel
{
public string TheContent { get { return "Hello World."; } }
}
へ
私は新しいUWPプロジェクトを開始すると、<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<ContentPresenter Content="{Binding TheContent}" />
</Grid>
にMainPage
内容を変更
、それがコードビハインドだ設定「Hello World」に設定します。少なくともそれはWPFでそのように動作します。
代わりに、何も示されていない、と私は出力のバインディングエラーを持っている:
Error: BindingExpression path error: 'TheContent' property not found on 'Windows.Foundation.IReference`1'. BindingExpression: Path='TheContent' DataItem='Windows.Foundation.IReference`1'; target element is 'Windows.UI.Xaml.Controls.ContentPresenter' (Name='null'); target property is 'Content' (type 'Object')
これはContentPresenter
試みは、それが配置されているページとコンテンツだレンダリングすることを、私には見えますか? ContentTemplate
を明示的にTextBlock
に設定すると、すべて正常に機能しますが、TextBlock
に基づいてDataTemplate
を返すContentTemplateSelector
を使用すると、前と同じエラーが発生します。
私には何が欠けていますか?
代わりにContentControlに切り替えるまで、私はUWPのContentPresenterに大きな問題がありました。あなたのユースケースに合っているかどうかはわかりませんが、試してみてください –