Browse Source

Fixed the problem with binding converters.

Wasn't assigning the property in the markup extension ProvideValue.
D'oh.
pull/297/head
Steven Kirk 11 years ago
parent
commit
c988bdb387
  1. 3
      samples/XamlTestApplicationPcl/TextBox.paml
  2. 16
      src/Markup/Perspex.Markup.Xaml/MarkupExtensions/BindingExtension.cs
  3. 15
      src/Markup/Perspex.Markup.Xaml/MarkupExtensions/RelativeSourceExtension.cs
  4. 3
      src/Markup/Perspex.Markup.Xaml/MarkupExtensions/TemplateBindingExtension.cs

3
samples/XamlTestApplicationPcl/TextBox.paml

@ -27,8 +27,7 @@
<TextBlock Name="watermark"
Opacity="0.5"
Text="{TemplateBinding Watermark}"
IsVisible="{TemplateBinding Path=Text, Converter={Static local:StringNullOrEmpty.Instance}}">
</TextBlock>
IsVisible="{TemplateBinding Path=Text, Converter={Static local:StringNullOrEmpty.Instance}}"/>
<TextPresenter Name="PART_TextPresenter"
CaretIndex="{TemplateBinding CaretIndex}"
SelectionStart="{TemplateBinding SelectionStart}"

16
src/Markup/Perspex.Markup.Xaml/MarkupExtensions/BindingExtension.cs

@ -6,25 +6,29 @@ using Perspex.Markup.Xaml.Data;
namespace Perspex.Markup.Xaml.MarkupExtensions
{
public class RelativeSourceExtension : MarkupExtension
public class BindingExtension : MarkupExtension
{
public RelativeSourceExtension()
public BindingExtension()
{
}
public RelativeSourceExtension(RelativeSourceMode mode)
public BindingExtension(string path)
{
Mode = mode;
Path = path;
}
public override object ProvideValue(MarkupExtensionContext extensionContext)
{
return new RelativeSource
return new Binding
{
Converter = Converter,
Mode = Mode,
SourcePropertyPath = Path,
};
}
public RelativeSourceMode Mode { get; set; }
public IValueConverter Converter { get; set; }
public BindingMode Mode { get; set; }
public string Path { get; set; }
}
}

15
src/Markup/Perspex.Markup.Xaml/MarkupExtensions/RelativeSourceExtension.cs

@ -6,28 +6,25 @@ using Perspex.Markup.Xaml.Data;
namespace Perspex.Markup.Xaml.MarkupExtensions
{
public class BindingExtension : MarkupExtension
public class RelativeSourceExtension : MarkupExtension
{
public BindingExtension()
public RelativeSourceExtension()
{
}
public BindingExtension(string path)
public RelativeSourceExtension(RelativeSourceMode mode)
{
Path = path;
Mode = mode;
}
public override object ProvideValue(MarkupExtensionContext extensionContext)
{
return new Data.Binding
return new RelativeSource
{
Mode = Mode,
SourcePropertyPath = Path,
};
}
public object Converter { get; set; }
public BindingMode Mode { get; set; }
public string Path { get; set; }
public RelativeSourceMode Mode { get; set; }
}
}

3
src/Markup/Perspex.Markup.Xaml/MarkupExtensions/TemplateBindingExtension.cs

@ -21,6 +21,7 @@ namespace Perspex.Markup.Xaml.MarkupExtensions
{
return new Data.Binding
{
Converter = Converter,
Mode = Mode,
Priority = BindingPriority.TemplatedParent,
RelativeSource = new RelativeSource(RelativeSourceMode.TemplatedParent),
@ -28,7 +29,7 @@ namespace Perspex.Markup.Xaml.MarkupExtensions
};
}
public object Converter { get; set; }
public IValueConverter Converter { get; set; }
public BindingMode Mode { get; set; }
public string Path { get; set; }
}

Loading…
Cancel
Save