gpt4 book ai didi

c# - WPF:从 XAML 设置 ViewModel,为什么第二个解决方案不起作用?

转载 作者:太空宇宙 更新时间:2023-11-03 22:28:40 25 4
gpt4 key购买 nike

这个版本有效

<UserControl x:Class="FrequentKeywordsFinder"
xmlns:viewModels="clr-namespace:SeoZoomReader.ViewModels">
<UserControl.DataContext>
<viewModels:FrequentKeywordFinderViewModel />
</UserControl.DataContext>

这个版本不工作

<UserControl x:Class="FrequentKeywordsFinder"             
xmlns:viewModels="clr-namespace:SeoZoomReader.ViewModels"
DataContext="viewModels:FrequentKeywordFinderViewModel">

为什么?

最佳答案

您需要将属性中的类型括在花括号中:

<UserControl x:Class="FrequentKeywordsFinder"             
xmlns:viewModels="clr-namespace:SeoZoomReader.ViewModels"
DataContext="{viewModels:FrequentKeywordFinderViewModel}">

并且(尽管我不知道与您的第一个版本有什么区别),如果您想以这种方式使用类型,它需要从 MarkupExtension 派生并覆盖其 ProvideValue 方法:

public class FrequentKeywordFinderViewModel : MarkupExtension
{
//...

public override object ProvideValue(IServiceProvider serviceProvider) => this;
}

关于c# - WPF:从 XAML 设置 ViewModel,为什么第二个解决方案不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59338187/

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