gpt4 book ai didi

wpf - 如何使用 VM 的数据绑定(bind)将简单的 wpf 标记提取到用户控件

转载 作者:行者123 更新时间:2023-12-04 21:59:00 25 4
gpt4 key购买 nike

不得不问这个问题我感到很愚蠢,但我整个周末都在阅读 Microsoft 和非 Microsoft 的文档,这一切要么过于简单化,要么涵盖了一些与我无关的奇怪深奥的案例。

我需要的很简单。我有一些标记

            <Viewbox Grid.Row="1" Margin="55,3,15,0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="303*"></ColumnDefinition>
<ColumnDefinition Width="156*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding TextSettings.PlayerNumber}" />
<TextBlock Grid.Column="1" Text="{Binding PlayerNumber}" />
</Grid>
</Viewbox>

出于多种原因,我希望该 View 框的内容存在于另一个文件中。它甚至不必是可重用的,它只需要在一个 UserControl 中,我可以根据应用程序状态包含或不包含或包含不同的用户控件。

我不知道如何移动 Grid into 是自己的 UserControl 并让绑定(bind)继续工作。我假设我必须通过参数将 ViewModel 从父 View 传递给 subview ,但对于我来说,我找不到正确语法的示例。

所以。如果要移动到它自己的 UserControl,
  • UserControl 会是什么样子?
  • 我需要在 UserControl 的代码隐藏中添加什么才能使绑定(bind)正常工作?
  • 包含点会是什么样子?
  • 最佳答案

    您的数据上下文将沿可视树继承。所以只要定义你的UserControl

    <UserControl x:Class="WpfApplication1.MyUserControl"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="300">
    <Grid>
    <Grid.ColumnDefinitions>
    <ColumnDefinition Width="303*"></ColumnDefinition>
    <ColumnDefinition Width="156*"></ColumnDefinition>
    </Grid.ColumnDefinitions>
    <TextBlock Grid.Column="0" Text="{Binding TextSettings.PlayerNumber}" />
    <TextBlock Grid.Column="1" Text="{Binding PlayerNumber}" />
    </Grid>
    </UserControl>

    然后在您的父窗口中,您将需要声明用户控件的命名空间:
    xmlns:local="clr-namespace:WpfApplication1" 

    然后使用它:
    <Viewbox Grid.Row="1" Margin="55,3,15,0">
    <local:MyUserControl/>
    </Viewbox>

    关于wpf - 如何使用 VM 的数据绑定(bind)将简单的 wpf 标记提取到用户控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36538092/

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