2011-01-11 84 views
1

我有一個領域的窗口是這樣的:如何在WPF中設置綁定?

public partial class VariablesWindow : Window 
{ 
    public Dictionary<string, string> Variables { get; private set; } 

然後在窗口的XAML,我創建了一個ListView。如何設置ItemsSource綁定到Variables

<ListView ItemsSource="???" 

回答

3

我想ChrisF公佈會工作......

<ListView ItemsSource="{Binding Variables}" /> 

但是你可能需要顯式設置的DataContext。

this.DataContext = this; 
1

我認爲有以下應該工作:

<ListView ItemsSource="{Binding Path=Variables}" /> 

我不是在一個位置,現在的兩倍檢查這個權利,所以我不是是否需要與否Path= 100% 。

有一個在綁定語法在MSDN herehere更多信息。他們的所有示例都有Path=語法。

,你將不得不設置DataContext

1
<ListView ItemsSource="{Binding Path=Variables}" /> 

但是,您可能會發現更多有用的直接綁定到鍵或值,你會做這樣的:

<ListView ItemsSource="{Binding Path=Variables.Values}" /> 

更新:這些綁定將工作,只要你DataContextnull或等於this。否則,你就需要使用一些比較煩瑣,像

<ListView ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=x:Type Window}}, Path=Variables} 

對於綁定的幫助,看看this superb cheat sheet

+0

直接鏈接:http://www.nbdtech.com/Free/WpfBinding.pdf(!它是隱藏的,你鏈接到頁面上) – mpen 2011-01-11 22:42:22

+1

@Ralph:我知道。我不想熱鏈接PDF。 :) – Jon 2011-01-11 22:47:01

0

這工作,但它是一個有點可笑冗長:

ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=my:VariablesWindow, AncestorLevel=1} 

似乎並不喜歡做的最好的方式。

相關問題