C# 组合框(WPF)仅在第一次选择时显示选定项,仅在第一次选择后更改文本
我必须为wpf应用程序创建以下组合框 对于以下类型C# 组合框(WPF)仅在第一次选择时显示选定项,仅在第一次选择后更改文本,c#,wpf,mvvm,combobox,wpf-controls,C#,Wpf,Mvvm,Combobox,Wpf Controls,我必须为wpf应用程序创建以下组合框 对于以下类型 public class Protocol { public int Id {get;set} public string Name {get;set} public int Speed {get;set} public int Security {get;set} } 所以我制作了一个自定义的分级控件,它可以获取图像和一个整数(即速度或安全性)来用图像填充矩形包装。 我为combobox创建了DataTemp
public class Protocol
{
public int Id {get;set}
public string Name {get;set}
public int Speed {get;set}
public int Security {get;set}
}
所以我制作了一个自定义的分级控件,它可以获取图像和一个整数(即速度或安全性)来用图像填充矩形包装。
我为combobox创建了DataTemplate,如下所示
<ComboBox x:Name="pro" IsSynchronizedWithCurrentItem="True" Grid.Row="1" Margin="40,41,50,0" VerticalAlignment="Top"
Style="{StaticResource ProtocolComboBoxStyle}"
ItemsSource="{Binding Protocols}"
SelectedItem="{Binding Protocol, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
Height="29" SelectionChanged="ComboBox_SelectionChanged">
<ComboBox.ItemTemplate>
<DataTemplate DataType="{x:Type models:Protocol}">
<WrapPanel Orientation="Horizontal">
<TextBlock Width="145" Padding="10,2,0,2" x:Name="text" Style="{StaticResource SettingsInactiveTextBlockStyle}" Text="{Binding Name}" HorizontalAlignment="Center"/>
<controls:RatingControl FilledImage="pack://application:,,,/SampleApp;component/Resources/Images/Settings/SettingsHome/security_filled.png"
UnfilledImage="pack://application:,,,/SampleApp;component/Resources/Images/Settings/SettingsHome/security_unfilled.png"
Rating="{Binding Security}" HorizontalAlignment="Right"/>
<controls:RatingControl Margin="5,2,0,0" FilledImage="pack://application:,,,/SampleApp;component/Resources/Images/Settings/SettingsHome/speed_filled.png"
UnfilledImage="pack://application:,,,/SampleApp;component/Resources/Images/Settings/SettingsHome/speed_unfilled.png"
Rating="{Binding Speed}" HorizontalAlignment="Right"/>
</WrapPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
它工作正常,除了在初始选择之后,只有协议的名称在togglebutton中更改,左侧的分级控件没有更改
还要提到的是,选择项目会更改viewmodel中的binded selectedProtocol属性
如果我遗漏了什么,请告诉我?
提前感谢看起来您的类并没有通知更改(INPC),它在实际项目中是这样做的,我只是在这里编写代码以供参考。我认为通知属性与问题无关,这些属性不会更改,它们只是用于加载评级控件一次