我有一個名爲「僱員」的對象,如下所示:綁定WPF控件對象
class Employee
{
public string EmpName { get; set; }
public string Surname { get; set; }
public Employee(string Name, string Surname) : base()
{
this.EmpName = EmpName;
this.Surname = Surname;
}
public Employee()
{
}
}
我也有這個簡單的「EmployeeControl」在這裏。在網格中只有兩個標籤:
<UserControl x:Class="LabelBindingTest.EmployeeCtrl"
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"
Name="EmpCtrl"
d:DesignHeight="120" d:DesignWidth="411">
<Grid>
<Label Content="{Binding ElementName=EmpCtrl, Path=EmpName}" Height="28" HorizontalAlignment="Left" Name="label1" VerticalAlignment="Top" Width="81" />
<Label Content="{Binding ElementName=EmpCtrl, Path=Surname}" Height="28" HorizontalAlignment="Right" Name="label2" VerticalAlignment="Top" Width="81" />
</Grid>
</UserControl>
(編輯)EmployeeControl代碼隱藏:
public partial class EmployeeCtrl : UserControl
{
Employee thisEmployee = new Employee();
public string EmpName
{
get
{
return thisEmployee.EmpName;
}
set
{
thisEmployee.EmpName = value;
}
}
public string Surname
{
get
{
return thisEmployee.EmpName;
}
set
{
thisEmployee.EmpName = value;
}
}
public EmployeeCtrl()
{
InitializeComponent();
}
}
現在,我想要做的就是添加「EmployeeControl」 s到我的窗口,並結合他們的員工對象。 這裏是我的「窗口」,代碼:
<Window x:Class="LabelBindingTest.MainWindow"
Name="myWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" xmlns:my="clr-namespace:LabelBindingTest">
<Grid>
<my:EmployeeCtrl EmpName="Daniel" Surname="Hammond" HorizontalAlignment="Left" Margin="23,26,0,0" x:Name="employeeCtrl1" VerticalAlignment="Top" Height="97" Width="429" />
</Grid>
</Window>
我已經嘗試了各種東西,但我無法得到它的工作。它編譯得很好,但標籤是空的。我只想將我的「Employee」對象附加到「EmployeeCtrl」控件。關於我如何解決這個問題的任何想法?我今天讀了很多關於綁定的內容,但我仍然在撓頭。我不確定是否需要實施INotifyPropertyChanged,因爲我現在只在運行時設置員工姓名。
(編輯):我已經下載了Caliburn.Micro,並在最後一個答案中使用了相同的代碼。相同的結果,空的窗口。
這是整個項目。雖然它的所有代碼應該粘貼在這個問題中。這只是爲了方便。
http://www.mediafire.com/?gux3573rz64mupe
你可以顯示用戶控制的代碼嗎?\ – AbZy 2013-02-18 23:33:43
你在MainWindow中設置了什麼DataContext? – 2013-02-18 23:37:54