任何人都可以帮助我。我已经创建了一个自定义组合框,它有一个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 :(得分:1)
它是否适用于常规组合框?
您是否将SelectedValue设置为CarePlanCatalogs.AllLinkedClassifications中的LinkedClassification实例之一或创建另一个实例?如果您创建另一个实例,则应该在LinkedClassification上覆盖Equals和GetHashCode,因此wpf可以在CarePlanCatalogs.AllLinkedClassifications中找到您的LinkedClassification
答案 1 :(得分:0)
您是否将SelectedValue设置为CarePlanCatalogs.AllLinkedClassifications中的LinkedClassification实例之一或创建另一个实例?
如果您创建另一个实例,则应该在LinkedClassification上覆盖Equals和GetHashCode,因此wpf可以在CarePlanCatalogs.AllLinkedClassifications中找到您的LinkedClassification