Связывание со статическими свойствами в ListView ItemTemplate - PullRequest
4 голосов
/ 18 августа 2010

У меня проблемы с привязкой WPF.
У меня есть сборка с некоторыми константными свойствами в классе Values, которые соответствуют столбцам из datatable.Я хочу связать значение из столбца с TextBlock, используя свойство const, чтобы указать столбец в шаблоне ListView ItemTemplate, как показано в коде:

 xmlns:C="clr-namespace:WPFApplication1.Entities;assembly=WPFApplication1">
  <Grid>  
   <ListView>
    <ListView.ItemTemplate>
          <DataTemplate>
            <TextBlock Text="{Binding {x:Static C:Values.FieldCode}}" /> /*<- Don't work*/
            /*Works like this: <TextBlock Text="{Binding [CODE]}" />*/ 
          </DataTemplate>
       </ListView.ItemTemplate>
    </ListView>
  </Grid>

Если я использую привязку со статическим свойством I I 'Я не могу показать значение в датаровом, но если я использую привязку, как это [CODE], я могу показать значение.

Что происходит?Любая подсказка?

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 18 августа 2010

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

{Binding Source={x:Static C:Values.FieldCode}}
1 голос
/ 18 августа 2010

курсивный текст неверен, пожалуйста, прочитайте от EDIT1 :
Невозможно привязать к статическим свойствам.Привязка всегда требует экземпляра класса.Это возможно путем создания экземпляра класса как ресурса в коде и установки этого класса в виде datacontext

EDIT1:

Добавить статическое свойство типа

public static string FieldCode = "Code";
public static PropertyPath FieldCodePath = new PropertyPath(FieldCode);

Измените привязку на привязку ниже:

<TextBlock Text="{Binding Path={x:Static C:Values.FieldCodePath}, IsAsync=true}" />

Надеюсь, это поможет

...