Ik heb een probleem met mijn data binding, value converter.
Graag zou ik een visuele indicatie bekomen ifv de status van de ActvityIndication.
Mainpage.xaml :
MainPage.xaml.cs roept de singleton op van de ActivityIndication, en met de codebehind kan de status via buttons worden verandert.
binding source - ActivityIndication :
En de value converter zal de aanpassing van boolean naar fill [brush] aanpassen.
ConverterBool2Fill :
Echter ik krijg de foutmelding :
meer in detail
Ondanks dat ik geen foutmeldingen krijg en de file lijkt geupload te zijn, is deze niet ter beschikking (is kleiner dan 100kb).
-
[VERSIE 1]
Bijlage kunt u terug vinden :
RAR - http://www.4shared.com/rar/G_VBLorz/PhoneApp_ValueConverter.html
ZIP - http://www.4shared.com/zip/TPrV4kgE/PhoneApp_ValueConverter.html
Ik wil deze op meerdere pagina's gebruiken, vandaar de databinding.
In een andere versie heb ik gewerkt met ObservableCollection, echter hier krijg ik dezelfde foutmelding.
[VERSIE 2 - ObservableCollection]
Bijlage kunt u terug vinden :
RAR - http://www.4shared.com/rar/4xTl_d9V/PhoneApp_ValueConverter_v2.html
ZIP - http://www.4shared.com/zip/Y27aMxQP/PhoneApp_ValueConverter_v2.html
Alvast bedankt bij voorbaat.
Graag zou ik een visuele indicatie bekomen ifv de status van de ActvityIndication.
Mainpage.xaml :
Code:
<StackPanel Name="stpIndicator">
<StackPanel.Resources>
<aid:ConverterBool2Fill x:Key="bool2BrushConverter"></aid:ConverterBool2Fill>
</StackPanel.Resources>
<!-- UpdateSourceTrigger=bActvityIndication, -->
<Rectangle Name="recNetworkActivity"
Fill="{Binding ActvityIndication, Path=bActvityIndication,
Converter={StaticResource bool2BrushConverter}}"
HorizontalAlignment="right"
VerticalAlignment="Top"
Width="50" Height="50"
Margin="15,15,15,15" Stroke="White" StrokeThickness="2"></Rectangle>
</StackPanel>
MainPage.xaml.cs roept de singleton op van de ActivityIndication, en met de codebehind kan de status via buttons worden verandert.
Code:
private void Set_Click(object sender, RoutedEventArgs e)
{
ActivityIndication.Instance.Set();
}
private void Reset_Click(object sender, RoutedEventArgs e)
{
ActivityIndication.Instance.Reset();
}
binding source - ActivityIndication :
Code:
private bool _bActvityIndication;
public bool bActvityIndication {
get { return _bActvityIndication; }
private set { _bActvityIndication = value;
NotifyPropertyChanged("bActvityIndication");
}
}
public void Set() {
bActvityIndication = true;
}
public void Reset()
{
bActvityIndication = false;
}
public void Change(bool status) {
bActvityIndication = status;
}
#region "PropertyChanged"
public event PropertyChangedEventHandler PropertyChanged;
// Notifies, brengt de databinding op de hoogte van een waarde verandering van een property.
private void NotifyPropertyChanged(string propertyName)
{
var propertyChanged = PropertyChanged;
if (propertyChanged != null)
{
// lanceert PropertyChanged event.
propertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
#endregion
}
En de value converter zal de aanpassing van boolean naar fill [brush] aanpassen.
ConverterBool2Fill :
Code:
public class ConverterBool2Fill : IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
CultureInfo culture)
{
// value - true : green | false : red | anders niets doen
Brush b = new SolidColorBrush(Colors.Transparent);
if (value != null && value.GetType() == typeof(bool))
{
b = (bool)value ?
new SolidColorBrush(Colors.Green) :
new SolidColorBrush(Colors.Red);
}
return b;
}
Echter ik krijg de foutmelding :
Code:
The property 'System.Windows.Data.Binding.Path' is set more than once. [Line: 37 Position: 24]
Code:
System.Windows.Markup.XamlParseException occurred
Message=The property 'System.Windows.Data.Binding.Path' is set more than once. [Line: 37 Position: 24]
LineNumber=37
LinePosition=24
StackTrace:
at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
at PhoneApp_ValueConverter.MainPage.InitializeComponent()
at PhoneApp_ValueConverter.MainPage..ctor()
at System.Reflection.RuntimeConstructorInfo.InternalInvoke(RuntimeConstructorInfo rtci, BindingFlags invokeAttr, Binder binder, Object parameters, CultureInfo culture, Boolean isBinderDefault, Assembly caller, Boolean verifyAccess, StackCrawlMark& stackMark)
at System.Reflection.RuntimeConstructorInfo.InternalInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, StackCrawlMark& stackMark)
at System.Activator.InternalCreateInstance(Type type, Boolean nonPublic, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(Type type)
at System.Windows.Navigation.PageResourceContentLoader.BeginLoad_OnUIThread(AsyncCallback userCallback, PageResourceContentLoaderAsyncResult result)
at System.Windows.Navigation.PageResourceContentLoader.<>c__DisplayClass4.<BeginLoad>b__0(Object args)
at System.Reflection.RuntimeMethodInfo.InternalInvoke(RuntimeMethodInfo rtmi, Object obj, BindingFlags invokeAttr, Binder binder, Object parameters, CultureInfo culture, Boolean isBinderDefault, Assembly caller, Boolean verifyAccess, StackCrawlMark& stackMark)
at System.Reflection.RuntimeMethodInfo.InternalInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, StackCrawlMark& stackMark)
at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
at System.Delegate.DynamicInvokeOne(Object[] args)
at System.MulticastDelegate.DynamicInvokeImpl(Object[] args)
at System.Delegate.DynamicInvoke(Object[] args)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.Dispatch(DispatcherPriority priority)
at System.Windows.Threading.Dispatcher.OnInvoke(Object context)
at System.Windows.Hosting.CallbackCookie.Invoke(Object[] args)
at System.Windows.Hosting.DelegateWrapper.InternalInvoke(Object[] args)
at System.Windows.RuntimeHost.ManagedHost.InvokeDelegate(IntPtr pHandle, Int32 nParamCount, ScriptParam[] pParams, ScriptParam& pResult)
Ondanks dat ik geen foutmeldingen krijg en de file lijkt geupload te zijn, is deze niet ter beschikking (is kleiner dan 100kb).
-
[VERSIE 1]
Bijlage kunt u terug vinden :
RAR - http://www.4shared.com/rar/G_VBLorz/PhoneApp_ValueConverter.html
ZIP - http://www.4shared.com/zip/TPrV4kgE/PhoneApp_ValueConverter.html
Ik wil deze op meerdere pagina's gebruiken, vandaar de databinding.
In een andere versie heb ik gewerkt met ObservableCollection, echter hier krijg ik dezelfde foutmelding.
Code:
// wordt toegevoegd via de singleton pattern
public class ListActivityIndication : ObservableCollection<ActivityIndication>
{
}
Bijlage kunt u terug vinden :
RAR - http://www.4shared.com/rar/4xTl_d9V/PhoneApp_ValueConverter_v2.html
ZIP - http://www.4shared.com/zip/Y27aMxQP/PhoneApp_ValueConverter_v2.html
Alvast bedankt bij voorbaat.
Laatst bewerkt: