컨텍스트 : WPF로 WinForms 앱을 변환 (아마도)하기위한 준비 과정에서 프로토 타이핑 중입니다.이것이 == 비교가 실패한 근본적인 이유는 무엇입니까? (놀랄만 한 결과)
내가하는 코드는 매우 단순 트리 뷰 이벤트 핸들러를합니다
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는?)
고맙습니다. 그 정도의 세부적인 수준이었습니다. –
사소한 세부 정보 : 문자열 비교는 먼저 참조 비교를 수행 한 다음 값 비교를 수행하도록 최적화되어 있습니다. –
사소한 세부 사항 추가 : 문자열 인턴하기 때문입니다. – Femaref