2010-11-24 3 views
0

У меня есть класс со статическим методом, который возвращает словарь. Сигнатура метода заключается в следующем: public static Dictionary<int, string> CodeLookup<T>() where T : EntityCodeBaseWPF - Как связать общий метод в XAML?

На данный момент, я использую этот метод, чтобы связываться с моим Наример в коде позади, так как: this.cboState.ItemsSource = CodeCache.CodeLookup<StateCode>();

ли кто-то пожалуйста, быть в состоянии назовите меня в правильном направлении для этого в XAML, чтобы я мог удалить этот материал из моего кода?

Спасибо,
Сонни

+0

Это была одна из моих самых востребованных функций. В эти дни я использую ViewModel для отображения функции как свойства только для чтения. – 2010-11-24 00:51:27

+0

@ Jon, иногда это удобно для этого, но я думаю, что это делает шаблон View слишком зависимым от реализации backend. – xandy 2010-11-24 02:17:20

ответ

4

не напрямую привязаны к конкретному методу. Вы должны создать свойство и связать его с ним.

public Dictionary<int, string> Code { 
    get { return CodeCache.CodeLookup<StateCode>(); } 
} 
0

выглядит, как вы не можете сделать это для общих методов

more info

0

Вот это свойство в моем ViewModel:

public ObservableCollection<Contact> AllContacts 
    { 
     get { return _applicationViewModel.CurrentContacts; } 
    } 

И вот моя XAML:

<ListView Margin="5" ItemsSource="{Binding Path=AllContacts}"> 
     <ListView.View> 
      <GridView> 
       <GridViewColumn Header="Last Name" DisplayMemberBinding="{Binding Path=LastName}" /> 
       <GridViewColumn Header="First Name" DisplayMemberBinding="{Binding Path=FirstName}" /> 
       <GridViewColumn Header="Work Phone" DisplayMemberBinding="{Binding Path=OfficePhone, Converter={StaticResource phoneConverter}}" /> 
       <GridViewColumn Header="Cell Phone" DisplayMemberBinding="{Binding Path=CellPhone, Converter={StaticResource phoneConverter}}" /> 
       <GridViewColumn Header="Email Address" DisplayMemberBinding="{Binding Path=PrimaryEmail}" /> 
      </GridView> 
     </ListView.View> 
    </ListView> 

Просто установите DataContext в ViewModel, и вы получите все, что вам нужно. Ознакомьтесь с шаблоном MVVM для получения дополнительной информации.

Есть способы привязки к статическому методу, но если все, что вы делаете, это базовая привязка данных, то это немного перебор. Взгляните на действия, если вы заинтересованы.

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