我在我的應用程序中使用了許多ComboBox,並且所有這些工作都沒有任何問題。但是,我現在找不到問題了。我已將SelectedValuePath設置爲「標記」屬性。但更改組合框選定項目後屬性不會更新。我已經閱讀過其他StackOverflow問題,但無所謂幫助。Silverlight ComboBox SelectedValue TwoWay綁定不起作用
這是XAML:
的xmlns:虛擬機= 「CLR的命名空間:SilverlightApplication1」
<UserControl.DataContext>
<vms:MainViewModel />
</UserControl.DataContext>
<Grid x:Name="LayoutRoot" Background="White">
<ComboBox Width="100" VerticalAlignment="Center" FontFamily="Segoe UI"
Height="30" Margin="0,5,0,0" HorizontalAlignment="Left"
SelectedValue="{Binding SelectedDifStatusComparer, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
SelectedValuePath="Tag">
<ComboBox.Items>
<ComboBoxItem Tag="H" >High</ComboBoxItem>
<ComboBoxItem Tag="L" >Low</ComboBoxItem>
<ComboBoxItem Tag="E" >Equal</ComboBoxItem>
</ComboBox.Items>
</ComboBox>
</Grid>
這裏是視圖模型:
public class MainViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
private string _selectedDifStatusComparer = "";
private string SelectedDifStatusComparer
{
get { return _selectedDifStatusComparer; }
set
{
_selectedDifStatusComparer = value;
MessageBox.Show(_selectedDifStatusComparer);
OnPropertyChanged("SelectedDifStatusComparer");
}
}
public MainViewModel()
{
SelectedDifStatusComparer = "E"; // It is working, the MessageBox is apperaing
}
}
請檢查你的輸出窗口綁定錯誤或使用史努比在運行時檢查你的綁定 – blindmeis
@blindmeis它的工作,我只是忘了讓公共財產。 –