Suppose you have a class like below.
public class FailOverStrings
{
public FailOverStrings()
{
ConfigTestBtn = "Actual value";
}
public string ConfigTestBtn { get; set; }
}
Then your converter can look like this
public class PropertNameToValueConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string retValue = string.Empty;
FailOverStrings settings = new FailOverStrings();
foreach(PropertyInfo pinfo in settings.GetType().GetProperties())
{
if (pinfo.Name == value.ToString())
{
retValue = pinfo.GetValue(settings, null).ToString();
}
}
return retValue;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
And using this converter in button like this
<Window.Resources>
<local:PropertNameToValueConverter x:Key="PropertNameToValueConverter"></local:PropertNameToValueConverter>
</Window.Resources>
<Grid>
<Button Content="{Binding ElementName=myWindow, Path=PropertyName, Converter={StaticResource ResourceKey=PropertNameToValueConverter}}" Width="100" Height="30" />
</Grid>