【问题标题】:How to connect different controls to different objects with data binding如何通过数据绑定将不同的控件连接到不同的对象
【发布时间】:2018-04-22 20:45:59
【问题描述】:

我在 Window 后面的代码中有两个对象。

namespace PL
{

public partial class Window6 : Window
{

    Currency Euro;
    Currency USD;
    public Window6()
    {
        InitializeComponent();

        Euro = new Currency();
        USD = new Currency();


    }
}
}

这是 Window 的 XAML 的样子:

<Window x:Class="PL.Window"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:PL"
    mc:Ignorable="d"
    Title="Window6" Height="319.2" Width="680.8">
<Grid>
    <Label Name="Label1" Content="" HorizontalAlignment="Left"  VerticalAlignment="Top"/>
    <Label Name="Label2" Content="" HorizontalAlignment="Left"  VerticalAlignment="Top" Margin="0,46,0,0"/>

</Grid>

我希望窗口上的两个不同标签分别连接到一个对象,Label1 的内容字段将连接到“Currency Euro”对象,到它的“currentCurrency”字段。Label2 也将连接到 USD 对象,到它的“currentCurrency”字段。

由于我只能为网格定义一个数据上下文,因此我目前可以单独使用一个对象。

如何将两者连接到不同的控件? (我试图找到类似的答案,但我没有找到我正在寻找的东西)

【问题讨论】:

    标签: wpf


    【解决方案1】:

    您需要创建一个包含 2 个值的模型类。 然后将该类设置为数据上下文,这将使您能够进行绑定。

    在理想情况下,您将创建一个模型和一个视图模型。 模型只是数据,模型视图是您绑定的内容,其中还包括通知属性更改和任何其他业务逻辑。

    【讨论】:

    • 绑定语法是什么样子的?,因为有两个不同的对象,我不能像这样只引用字段本身:Content="{Binding currentCurrency}"
    • 您的模型将包含 2 个货币对象。然后,您的视图模型将具有您要显示的 2 个字符串属性,这些属性是在 c# 中编码的。在窗口类中,将数据上下文绑定到视图模型的新实例。标签上的 ,使用标准 wpf 数据绑定到视图模型中的属性名称。这里有更多关于 MvvM 的信息msdn.microsoft.com/en-gb/library/hh848246.aspx
    • 谢谢,说我让他们准备好名为Model的模型,以及名为ViewModel的viewModel,它包含这两个对象。对象“货币”的字段“currentCurrency”的具体绑定语法如何欧元”会是什么样子?
    • 在您的视图模型中,您需要将 EUR 和 USD currentCurrency 映射到您的视图模型中的 2 个属性。然后你就可以做 content="{Binding eurCurrency}"
    猜你喜欢
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    • 2015-09-22
    • 2020-12-17
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多