背景:我正在为(可能)将我的 WinForms 应用程序转换为 WPF 进行原型设计。
我制作了非常简单的树视图事件处理程序,其代码为:
var treeViewItem = (TreeViewItem)e.NewValue;
var treeViewItemTag = treeViewItem.Tag;
if (treeViewItemTag == "ViewForAMs")
{
ObjectQuery<AccountManagerView> oq = entities.AccountManagerViews;
var q =
from c in oq
select c;
dataGrid1.ItemsSource = q.ToList();
}
XAML 是:
<Window x:Class="AccountingWpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
<DockPanel>
<TreeView Name="treeView1" ItemsSource="{Binding Folders}"
SelectedItemChanged="treeView1_SelectedItemChanged">
<TreeViewItem Header="Account Manager View" Tag="ViewForAMs"/>
</TreeView>
<DataGrid AutoGenerateColumns="True" Name="dataGrid1" />
</DockPanel>
</Window>
当我运行它时,我完全期望看到我的数据网格被填充,但 == 比较在上面的第二行代码中失败了。
调试器显示:
问题:为什么没有编译或运行时错误?(同样的问题另一种方式:实际上是在比较什么以使 == 运算符输出 FALSE?)