我正在尝试Mahapp Metro(使用VS 2012 Express),所以我尝试编写一个示例应用程序,所以我只创建了一个窗口,放入一个列表框和一个按钮。该按钮应该在按钮单击时将新列表项添加到列表框中。
由于这只是一个测试应用程序,我只想使用一个简单的代码后面的程序。但是当我在后面的代码中引用名为“listboxTest”的列表框时,我得到错误“名称”listboxTest“在当前上下文中不存在”。但这只是后面代码中列表框的直接引用。我检查了我是否犯了错误,因为C#区分大小写,但我没有。我添加了所有命名空间(一些不必要的命名空间)但是徒劳无功。代码在
之下XAML:
<controls:MetroWindow x:Class="Eloq_Home.TestWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
xmlns:System="clr-namespace:System;assembly=mscorlib"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:Behaviours="clr-namespace:MahApps.Metro.Behaviours;assembly=MahApps.Metro"
xmlns:Views="clr-namespace:Eloq_Home.Views"
Title="TestWindow" Height="402" Width="497">
<Grid>
<ListBox x:Name="listboxTest" HorizontalAlignment="Left" Style="{StaticResource KeysListBox}"
Height="278" Margin="91,10,0,0" VerticalAlignment="Top" Width="319">
<ListBoxItem />
<ListBoxItem />
<ListBoxItem />
<ListBoxItem />
</ListBox>
<Button x:Name="addTest" Content="Add" HorizontalAlignment="Left"
Height="45" Margin="263,317,0,0" VerticalAlignment="Top" Width="119" Click="addTest_Click"/>
</Grid>
代码背后:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
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.Shapes;
using MahApps.Metro.Controls;
using MahApps.Metro.Controls.Dialogs;
namespace Eloq_Home
{
/// <summary>
/// Interaction logic for TestWindow.xaml
/// </summary>
public partial class TestWindow : MetroWindow
{
public TestWindow()
{
InitializeComponent();
}
public void addTest_Click(object sender, RoutedEventArgs e)
{
ListBoxItem itm = new ListBoxItem();
//itm.Content = "some text";
listboxTest.Items.Add(itm);
}
}
}
错误:
“listboxTest.Items.Add(itm);”这是我有错误的行,每当我尝试引用列表框时我都会得到相同的错误,我试图设置它的项目来源,得到了同样的错误。
我绝对知道这是一个菜鸟问题但是我被困住了,感谢任何帮助。
IT工作在我注释掉我引用我的列表框的单行
答案 0 :(得分:0)
只需从ListBox标记中删除 Style =&#34; {StaticResource KeysListBox}&#34; ..它将起作用:-)
答案 1 :(得分:0)
我测试了您的代码,它运行良好VS2012
Ultimate
版。你可以再试一次吗?
以下是代码
<metro:MetroWindow x:Class="TestListBox.TestWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:metro="http://metro.mahapps.com/winfx/xaml/controls"
Title="MainWindow" Height="325" Width="525">
<StackPanel>
<ListBox x:Name="listboxTest" HorizontalAlignment="Left"
Height="100" Margin="91,10,0,0" VerticalAlignment="Top" Width="319">
<ListBoxItem />
<ListBoxItem />
<ListBoxItem />
<ListBoxItem />
</ListBox>
<Button x:Name="addTest" Content="Add" HorizontalAlignment="Left" Height="45" Margin="91,10,0,0" VerticalAlignment="Top" Width="119" Click="addTest_Click"/>
</StackPanel>
</metro:MetroWindow>
我根本没有改变你的代码。我刚刚取消注释了您在addTest_Click
方法中评论的两行。