gpt4 book ai didi

wpf - 从数据模板绑定(bind)到 View 模型的属性

转载 作者:行者123 更新时间:2023-12-03 10:33:20 24 4
gpt4 key购买 nike

我有以下资源字典:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

<DataTemplate x:Key="Sample">
<StackPanel>
<TextBlock Text="{Binding Data}" />
</StackPanel>
</DataTemplate>
</ResourceDictionary>

在我的主窗口中:
<Window.Resources>
<ResourceDictionary Source="Dictionary.xaml" />
</Window.Resources>

<Grid>
<ContentControl ContentTemplate="{StaticResource Sample}"/>
</Grid>

现在我怎样才能使绑定(bind)工作?我的窗口已将数据上下文设置为我的 View 模型,所以我认为它会起作用,但什么也没有。我没有看到它应用文本。

我的 View 模型有一个正常的属性:
public string Data { get; set; } = "Hello World";

但我没有看到。

这是我的 mainwindow.cs
public partial class MainWindow : Window
{

public MainWindow()
{
InitializeComponent();
DataContext = new ViewModel();
}
}

现在我的 View 模型:
public class ViewModel {
public string Data {get; set;} = "Hello World";
}

出于演示目的,整个代码保持非常简约。

编辑 :

它仍然无法正常工作,这次是为了简单起见:
    public partial class MainWindow : Window
{
public string Data { get; set; } = "Hello World";



public MainWindow()
{
InitializeComponent();
DataContext = this;
}
}

不工作,我不明白。这没有意义吗?就像 clemens 解释的那样,我已经设置了 xaml。

最佳答案

您还应该设置 ContentControl 的 Content 属性,如下所示。

除此之外,您应该通过 ResourceDictionary.MergedDictionaries 包含 Dictionary.xaml ,因为它允许拥有额外的“本地”资源。

<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Dictionary.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>

<Grid>
<ContentControl ContentTemplate="{StaticResource Sample}" Content="{Binding}"/>
</Grid>

关于wpf - 从数据模板绑定(bind)到 View 模型的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45691618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com