Het is een string ComboBox.TextProperty wordt gebruikt, de collectie van Items is niet waar de binding op werkt. Dat is in ieder geval niet wat ik wil met deze binding, deze binding moet er alleen voor zorgen dat de device name in de UI hetzelfde is als in de backend.
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| private Binding InitialiseBinding(int rowNumber, String propertyName, IValueConverter converter)
{
Binding binding = new Binding();
ActionAxis axis = m_action.getAxis(rowNumber);
binding.Source = axis;
binding.Path = new PropertyPath(propertyName);
binding.Mode = BindingMode.TwoWay;
binding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
binding.NotifyOnSourceUpdated = true;
binding.NotifyOnTargetUpdated = true;
if (converter != null)
{
binding.Converter = converter;
}
#if DEBUG
System.Diagnostics.PresentationTraceSources.SetTraceLevel(binding, System.Diagnostics.PresentationTraceLevel.High);
#endif
return binding;
} |
De Set binding die gebruikt wordt is de volgende
C#:
1
| comboBox.SetBinding(ComboBox.TextProperty, binding); |
@Razr de class van het data object implementeerd INotifyProperty allang. Voor alle andere comboboxenop die op het formulier staan werkt bovenstaande code dus daar zit het probleem niet..
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| public class ActionAxis : INotifyPropertyChanged
{
...
public String DeviceName
{
get { return m_deviceName; }
set
{
m_deviceName = value;
OnPropertyChanged("DeviceName");
}
}
...
} |
Het probleem zit er in dat als ComboBox.Items leeg is de TextProperty wel gewoon update, als de ComboBox.Items echter niet leeg is dan worden alleen waardes in de TextProperty weergegeven die ook daadwerkelijk in ComboBox.Items voorkomen. Althans hier lijkt het op het moment op.
edit:
Alle bindings zijn dynamisch omdat het allemaal dynamisch gegenereerd wordt, vanuit een file of door een button klik op het formulier zelf.
Het wegschrijven in de TextPoperty heeft niks te maken met het leeg zijn van ComboBox.Items maar met de Editable flag van de ComboBox.
[
Voor 6% gewijzigd door
NC83 op 06-10-2009 11:48
]