I don't completely understand what you are binding and in which technology/environment, but you definitely will not be able to do it with an array.
This is because arrays do not report when their elements are changing.
If you are in WPF or Silverlight and you are binding your array to some kind of a list in the UI, try to use an ObservableCollection.
If you are in WinForms and you are just manually binding elements to some controls, you will need to create wrappers for each element.
It is easy: just create a simple class like:
public sealed class ValueWrapper : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public ValueWrapper(byte initialValue) {
_value = initialValue;
}
private byte _value;
public byte Value {
get { return _value; }
set {
_value = value;
OnPropertyChanged("Value");
}
}
private void OnPropertyChanged(String name)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(name));
}
}
Now you want to transform your array of bytes to the array of wrappers. It is trivial, if you use LINQ:
var values = myBytes.Select(x=>new ValueWrapper(x)).ToArray();
Now, bind Value properties of wrapper objects, not bytes (using the Binding class)
And when you change these values:
values[0].Value = 122;
your UI will reflect this change (because of INotifyProperyChanged) and will show that new value.
Good Luck!