webapi varios tipo solicitud que pueden property parámetros ningún net frombody from form enlazar encontrado diet denominado data create controlador contenido con coincida code body bindings behind asp .net xaml binding silverlight-4.0 converter

.net - varios - wpf binding code behind



Enlace al parámetro convertidor (3)

¿Es posible enlazar a un ConvertidorParameter en Silverlight 4.0?

Por ejemplo, me gustaría hacer algo como esto y unir el ConvertidorParameter a un objeto en un ViewModel, por ejemplo.

Si esto no es posible, ¿hay alguna otra opción?

<RadioButton Content="{Binding Path=Mode}" IsChecked="{Binding Converter={StaticResource ParameterModeToBoolConverter}, ConverterParameter={Binding Path=DataContext.SelectedMode,ElementName=root}}" />


Desafortunadamente, no, no puedes enlazar a un ConvertidorParámetro. Hay dos opciones que he usado en el pasado: en lugar de usar un convertidor, crea una propiedad en tu ViewModel (o lo que sea que quieras vincular) que hace la conversión por ti. Si todavía desea ir a la ruta del convertidor, pase todo el objeto encuadernado al convertidor y luego puede hacer su cálculo de esa manera.


Otra opción es hacerse elegante creando un convertidor personalizado que envuelva su otro convertidor y pase en un param convertidor de una propiedad. Siempre que este convertidor personalizado herede DependencyObject y use DependencyProperty, se puede vincular a. Por ejemplo:

<c:ConverterParamHelper ConverterParam="{Binding ...}"> <c:ConverterParamHelper.Converter> <c:RealConverter/> </c:ConverterParamHelper.Converter> </c:ConverterParamHelper>


Sé que es una vieja pregunta, pero tal vez esto sea útil para alguien que la haya encontrado. La solución que encontré es la siguiente:

public class WattHoursConverter : FrameworkElement, IValueConverter { #region Unit (DependencyProperty) /// <summary> /// A description of the property. /// </summary> public string Unit { get { return (string)GetValue(UnitProperty); } set { SetValue(UnitProperty, value); } } public static readonly DependencyProperty UnitProperty = DependencyProperty.Register("Unit", typeof(string), typeof(WattHoursConverter), new PropertyMetadata("", new PropertyChangedCallback(OnUnitChanged))); private static void OnUnitChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { ((WattHoursConverter)d).OnUnitChanged(e); } protected virtual void OnUnitChanged(DependencyPropertyChangedEventArgs e) { } #endregion public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { // you can use the dependency property here ... } }

y en tu xaml:

<UserControl.Resources> <converters:WattHoursConverter x:Key="WattHoursConverter" Unit="{Binding UnitPropFromDataContext}"/> </UserControl.Resources> .... <TextBlock Grid.Column="1" TextWrapping="Wrap" Text="{Binding TotalCO2, Converter={StaticResource KgToTonnesConverter}}" FontSize="13.333" />