[英]Set Window.Datacontext with XAML in WPF
我目前正在C#中涉獵WPF,我所擁有的老師知道如何使用Windows窗體,但是關於WPF的知識並不多。 我可以看到,使用GUI的方式有些不同,但是看起來很可靠。
在遵循一小段速成課程的同時,我試圖通過使用XAML為MainWindow添加一個類作為dataContext,但是我似乎無法正確地做到這一點。 我在這里看到了很多關於它的帖子,但是似乎沒有什么與我所經歷的完全相同。 這是我的XAML
<Window x:Class="WPFTest.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"
xmlns:local="clr-namespace:WPFTest"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Window.DataContext>
<local:AddressBookViewModel />
</Window.DataContext>
<Grid x:Name="WPFTest">
<Button x:Name="btnNewContact" Content="Create a New Contact" HorizontalAlignment="Left" Margin="10,273,0,0" VerticalAlignment="Top" Width="209"/>
<Label x:Name="lblName" Content="Name:" HorizontalAlignment="Left" Margin="259,129,0,0" VerticalAlignment="Top"/>
<Label x:Name="lblEmail" Content="E-Mail:" HorizontalAlignment="Left" Margin="259,160,0,0" VerticalAlignment="Top"/>
<Label x:Name="lblPhone" Content="Phone:" HorizontalAlignment="Left" Margin="259,191,0,0" VerticalAlignment="Top"/>
<TextBox x:Name="txtName" HorizontalAlignment="Left" Height="23" Margin="327,133,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>
<TextBox x:Name="txtEmail" HorizontalAlignment="Left" Height="23" Margin="327,164,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>
<TextBox x:Name="txtPhone" HorizontalAlignment="Left" Height="23" Margin="327,195,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>
<ListBox x:Name="lbxContacts" HorizontalAlignment="Left" Height="204" Margin="10,53,0,0" VerticalAlignment="Top" Width="209"/>
</Grid>
我想用作ViewModel的類:
namespace WPFTest
{
public class AddressBookViewModel
{
public AddressBookViewModel()
{
}
protected List<Contact> contacts = new List<Contact>();
protected Contact selectedContact = null;
public List<Contact> Contacts
{
get
{
return contacts;
}
set
{
contacts = value;
}
}
public Contact SelectedContact
{
get
{
return selectedContact;
}
set
{
selectedContact = value;
}
}
}
}
但是,這只是給我一個錯誤:
The name "AddressBookViewModel" does not exist in the namespace "clr-namespace:WPFTest".
我根本不理解出了什么問題。 在我看來,AddressBookViewModel確實確實存在於此命名空間中,但是Visual Studio顯然不同意。
有人可以向我解釋這個問題嗎?
我知道我可以在后面的代碼中綁定Datacontext,但是,我可以在XAML中看到能夠做到這一點的價值
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.