15.02.2015 Views

C# 4 and .NET 4

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Markup extensions ❘ 743<br />

public override object ProvideValue(IServiceProvider serviceProvider)<br />

{<br />

IProvideValueTarget provideValue =<br />

serviceProvider.GetService(typeof(IProvideValueTarget))<br />

as IProvideValueTarget;<br />

if (provideValue != null)<br />

{<br />

var host = provideValue.TargetObject as FrameworkElement;<br />

var prop = provideValue.TargetProperty as DependencyProperty;<br />

}<br />

double result = 0;<br />

switch (Operation)<br />

{<br />

case Operation.Add:<br />

result = X + Y;<br />

break;<br />

case Operation.Subtract:<br />

result = X - Y;<br />

break;<br />

case Operation.Multiply:<br />

result = X * Y;<br />

break;<br />

case Operation.Divide:<br />

result = X / Y;<br />

break;<br />

default:<br />

throw new ArgumentException("invalid operation");<br />

}<br />

}<br />

}<br />

}<br />

return result.ToString();<br />

code snippet MarkupExtensionDemo/CalculatorExtension.cs<br />

The markup extension can now be used with an attribute syntax in the first TextBlock to add the values 3<br />

<strong>and</strong> 4, or with the element syntax with the second TextBlock.<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Multiply<br />

<br />

7<br />

11<br />

<br />

<br />

<br />

<br />

<br />

code snippet MarkupExtensionDemo/MainWindow.xaml<br />

www.it-ebooks.info

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!