2012-03-16 18 views
-1

誰でも助けてくれますか? itemtemplateを持つカスタムコンボボックスを作成しました。選択したアイテムをバインドしていますが、コンボボックス内の選択項目として表示されません。私のカスタムコンボボックスに選択した値が表示されない理由

XAML:

<Grid> 
    <hcw:ClassificationSelectorThreeLayerComboBox Grid.Row="3" Grid.Column="2" Grid.ColumnSpan="4" SelectedItem="{Binding Path=SelectedValue,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" ItemsSource="{Binding CarePlanCatalogs.AllLinkedClassifications}" Margin="3,3,20,3"/> 
</Grid> 

のviewmodel:ここ はコードです

class NeedViewModel : CarePlanEntityViewModelBase 
{ 
    public LinkedClassification SelectedValue 
    { 
     get { return selectedValue; } 
     set 
     { 
      if (value != null) 
      { 
       selectedValue = value; 
       OnPropertyChanged("SelectedValue"); 
      } 
     } 
    } 
} 


<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 

<DataTemplate x:Key="ClassificationSelectorThreeLayerDataTemplate"> 
    <Border BorderBrush="#ACACAC" BorderThickness="0,0,0,1"> 
     <StackPanel> 
      <Label Content="{Binding Path=ClassificationComponent.ComponentName}" Margin="0,0,0,4" /> 
      <Label Content="{Binding Path=MainClass.MainClassName}" Margin="0,0,0,4" /> 
      <Label Content="{Binding Path=SubClass.SubClassName}" Margin="0,0,0,4" /> 
     </StackPanel> 
    </Border> 

</DataTemplate> 

+0

であなたのLinkedClassificationを見つけることができる、LinkedClassificationに等しく、GetHashCodeメソッドをオーバーライドする必要がありますあなたがのItemsSourceによってバインドさの値を参照していますし、ちょうど右の選択や丼が欠落していますあなたはどんなアイテムも見ない? – MatthiasG

+0

@MatthiasG:はい、私はそれらを見ることができます。 – Girirsh

+0

あなたの拘束力に問題があると思います。デバッグ出力にバインディングエラーがありますか?おそらく、あなたのビューモデルのより詳細な部分(特に、SelectedItemとItemsSourceのソース)を書くことができます。 – MatthiasG

答えて

1

それは通常のコンボボックスで動作しますか?

CarePlanCatalogs.AllLinkedClassificationsからSelectedValueをLinkedClassificationのインスタンスの1つに設定するか、別のインスタンスを作成しますか?あなたが別のインスタンスを作成した場合、あなたはとてもWPFはCarePlanCatalogs.AllLinkedClassifications

+0

ええ、別のインスタンスを作成しています... equalsとGetHashCodeをオーバーライドしますか? – Girirsh

+0

はい。 MSDNには、http://msdn.microsoft.com/ru-ru/library/bsc2ak47.aspx – Nikolay

+0

すべてのヘルプに感謝してくれる記事があります。D – Girirsh

0

であなたのLinkedClassificationを見つけることができる、LinkedClassificationに等しく、GetHashCodeメソッドをオーバーライドする必要がありますCarePlanCatalogs.AllLinkedClassificationsからLinkedClassificationのインスタンスのいずれかにSelectedValueのを設定したり、別のインスタンスを作成しますか?

あなたが別のインスタンスを作成する場合は、あなたがそうWPFはCarePlanCatalogs.AllLinkedClassifications

関連する問題