【发布时间】:2018-05-20 21:02:48
【问题描述】:
我已经阅读了网上的大量教程、MSDN 上的文档和此处的答案,但我仍然不了解 WPF 中的绑定。我有自己的这样的 C# 类
namespace Organizer
{
public class UIDate
{
private int year;
private int month;
private String dateStr;
public UIDate()
{
DateTime actualDateTime = DateTime.Now;
year = actualDateTime.Year;
month = actualDateTime.Month;
dateStr = Convert.ToString(Year);
}
public int Year
{
get { return year; }
set { year = value; }
}
public int Month
{
get { return month; }
set { month = value; }
}
public String DateStr
{
get { return dateStr; }
set { dateStr = value; }
}
}
}
我想在这里将属性 DateStr 与标签内容绑定
<Window x:Class="Organizer.MainWindow"
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"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800" WindowState="Normal">
<DockPanel>
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal">
<Button MinWidth="25" MaxHeight="25" Margin="8"/>
<Button MinWidth="15" MaxHeight="15" Margin="5"/>
<Label Name="UIDateYM" Content="{Binding Path=UIDate.DateStr, UpdateSourceTrigger=PropertyChanged}" Margin="0, 8"/>
我相信 XAML 的其余部分无关紧要。
还有 xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Organizer;
namespace Organizer
{
/// <summary>
/// Logika interakcji dla klasy MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
UIDate uiDate = new UIDate();
this.DataContext = uiDate;
}
}
}
当应用程序运行时,标签中没有 txt。内容为空。 我检查了我的 uiDate 对象,它可以工作。如我所愿,属性及其字段具有正确的值。如何绑定它们?我错过了什么?
谢谢。
【问题讨论】:
标签: c# wpf data-binding