добавление к тому, что Джош советует ... сначала вам следует подумать об использовании имени переменной diff, а затем "value",во-вторых, вы не должны запускать событие PropertyChanged, если значение не меняется.
добавьте это в установщик свойств ....
if ( value != this.value )
{
}
в-третьих, вы не привязаны к экземпляру ваших данных, ваша привязка к типу вашего класса
SelectedItem="{Binding Path=Number, Mode=TwoWay}"
в-четвертых, вы должны установить ItemSource в вашем комбинированном списке на ObservableCollection< Number >
и, наконец, вы должны проверить Отличная запись Беа о отладке привязки данных. У нее много замечательных примеров.1016 *
хорошо, теперь, когда у меня есть доступ к моему компилятору ... вот что вам нужно сделать.
Во-первых, ГДЕ находится свойство Number, к которому вы привязываетесь?вы не можете привязать обратно к списку, который является источником вашего комбинированного списка.
вам нужно добавить ElementName к привязке или установить DataContext для объекта, который содержит свойство Number.Во-вторых, это свойство Number, где бы оно ни находилось, должно быть либо Notify, либо DependencyProperty.
Например, ваш класс Window будет выглядеть следующим образом .....
public partial class Window1 : Window
{
public Number Number
{
get { return (Number)GetValue(ValueProperty); }
set { SetValue(ValueProperty, value); }
}
public static readonly DependencyProperty ValueProperty = DependencyProperty.Register("Value", typeof(Number),typeof(Window1), new UIPropertyMetadata(null));
}
и вашWindow.xaml будет выглядеть так ...
<Window x:Class="testapp.Window1"
x:Name="stuff"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<ComboBox Height="23" Margin="52,64,33,0" Name="comboBox1"
IsEditable="True"
DisplayMemberPath="Value"
SelectedItem="{Binding ElementName=stuff, Path=Number, Mode=TwoWay}"
/>
</Grid>
</Window>