2013-09-22 3 views
0

Я получил следующий код:Ссылка на текущий XAML класса Windows Phone

namespace SomeApp 
{ 
    public partial class MyClass : PhoneApplicationPage, IValueConverter 
    { 

    SOME METHODS... 

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 

     return true; 

    } 

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 

     return true; 

    } 

    } 
} 


Я хотел бы, чтобы связать этот класс с ValueConverter из в RadioButton. Есть ли способ ссылаться на текущий класс, с которым я работаю? Например:

<phone:PhoneApplicationPage
x:Class="SomeApp.MyClass"
xmlns:local="clr-namespace:SomeApp">

<phone:PhoneApplicationPage.Resources>
<local:MyClass x:Key="myClass"/>
</phone:PhoneApplicationPage.Resources>

<RadioButton IsChecked="{Binding Converter={StaticResource myClass}}"/>

Заранее спасибо =)

+0

общественного класса MyClass: IValueConverter – MatDev8

ответ

0

Во-первых, используя свою страницу в качестве преобразователя не кажется, как хороший Идея - лучше отделить форматирование конвертера в отдельном классе. В частности, было бы очень плохо создать StaticResources конвертера, созданного таким образом, поскольку он будет использовать много незаданной памяти для создания всей страницы.

Единственное, что конвертер может быть привязан в xaml, это StaticResource, поэтому вы не сможете это сделать в xaml, но если вы действительно этого захотите, вы можете сделать это, создав привязку из кода позади (например в конструкторе страницы):

Binding binding=new Binding(); 
binding.Converter = this; 
myRadioButton.SetBinding(CheckBox.IsCheckedProperty, binding); 
+0

Спасибо за ответ и советы. =) и что, если я просто хочу обратиться к текущему классу в XAML ?? не через Static Resource ... –

+1

Если это не конвертер (который поддерживает только StaticResource), вы можете обратиться к текущему классу с помощью ElementName: установить имя в корневом каталоге xaml и использовать следующую привязку, где вы хотите ссылаться на Текущая страница: {Binding ElementName = myClass} (где мой класс - это имя, присвоенное корневому файлу –

Смежные вопросы