난 정말 당신이 Ctrl 키 + Shift를 누른 채 마우스 곳을 가리키는하여 컨트롤 (http://snoopwpf.codeplex.com/)
을 디버깅 스눕를 사용하는 것이 좋습니다 강하게 것, 그러나 코드에서 문제가 있는지 알 수 없습니다 당신은 ComboBox가 당신의 콤보 상자 대신에 누가 포커스를 가지고 있는지 즉시 알 수있는 입력을 받아 들여야합니다.
당신은 당신의 템플릿을 디버깅 정말, 당신의 가장 친한 친구를 속성 값을 변경할 수 있습니다!
편집
난 두려워하지만 코드가 당신이 나를 위해 작품을 게시 한 :
<Window x:Class="WpfApplication6.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:wpfApplication6="clr-namespace:WpfApplication6"
Title="MainWindow"
Width="525"
Height="350">
<Window.Resources>
<DataTemplate x:Key="myTemplate" DataType="{x:Type wpfApplication6:MyType}">
<Border>
<Grid x:Name="upperLayout">
<Grid x:Name="lowerLayout">
<ComboBox x:Name="combo"
Grid.Column="0"
ItemsSource="{Binding Path=Things}"
SelectedItem="{Binding Path=SelectedThing}">
<ComboBox.ItemTemplate>
<DataTemplate DataType="{x:Type wpfApplication6:MyThing}">
<TextBlock Text="{Binding Name}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
</Grid>
</Border>
</DataTemplate>
</Window.Resources>
<Grid x:Name="grid">
<ContentControl x:Name="content" ContentTemplate="{StaticResource myTemplate}" Margin="58,79,71,40" />
</Grid>
</Window>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Loaded += MainWindow_Loaded;
}
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
MyType type = new MyType()
{
Things = new List<MyThing>() {new MyThing() {Name = "aaa"}, new MyThing() {Name = "bbb"}}
};
content.Content = type;
}
}
public class MyType
{
public MyThing SelectedThing { get; set; }
public List<MyThing> Things { get; set; }
}
public class MyThing
{
public string Name { get; set; }
}
어쩌면 뭔가는없는 키 스타일로 나사 또는 뭐든지, 문제가있는 코드를 더 게시하십시오.
'SelectedItem'을 변경할 때'SelectedThing'이 변경 되나요? – PoweredByOrange
는 아마도 관련 http://stackoverflow.com/questions/1342200/wpf-combobox-not-responding-to-mouse – keyboardP
당신은 인 selectionchanged가 호출됩니다 있는지 확인하려고 했습니까? 메소드를 Event로 추가하고 중단 점을 추가하기 만하면됩니다. – Master117