【问题标题】:Window level dependency property (view's code behind), can it be bound to in XAML of the view?窗口级依赖属性(视图的代码在后面),它可以绑定到视图的 XAML 中吗?
【发布时间】:2014-10-29 13:36:17
【问题描述】:

我在视图的代码 (.cs) 中定义了一个依赖属性,我想将我的视图模型中的一个值绑定到它。我希望我可以转到 .xaml 并在定义 Window 并填充其他属性(如 DataContext、Title 等)的顶部绑定到它。这似乎是不可能的,因为那里显示的唯一属性是基本 Window 类型的属性,而不是我正在使用的视图的特定实例。

我想这样做的原因是,如果我的 ViewModel 定义了一个命令,我希望能够从我的视图后面的代码中启动该命令。我不想将 DataContext 转换为特定的 ViewModel 类型来获取命令的句柄。我显然可以发送一条消息(我正在使用 MVVM Light)来执行此操作,似乎我可以在不通过依赖属性发送消息的情况下执行此操作。

【问题讨论】:

    标签: c# wpf xaml mvvm mvvm-light


    【解决方案1】:

    您可以通过样式设置器设置绑定,如下所示。请注意 Setter Property 中的完全限定属性名称。您也可以将 local:MainWindow 设置为样式的 TargetType 以避免完全限定的属性名称,但 XAML 设计器可能会抱怨这一点。

    <Window x:Class="SomeNamespace.MainWindow"
            xmlns:local="clr-namespace:SomeNamespace" ...>
        <Window.Style>
            <Style>
                <Setter Property="local:MainWindow.SomeProperty"
                        Value="{Binding ViewModelProperty}"/>
            </Style>
        </Window.Style>
        ...
    </Window>
    

    【讨论】:

      猜你喜欢
      • 2016-08-25
      • 2020-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多