2012-11-26 151 views
0

在下面的XAML片段中,爲「testGrid」正確設置了ItemsSource,但對於「testGridResource」則爲null。如何通過綁定將網格的ItemsSource設置爲資源?更一般地說,如何通過綁定將靜態資源定義爲對象的屬性(我僅在使用其他對象的應用程序中使用datagrid作爲示例)?如何通過綁定來設置靜態資源的屬性

<Window x:Class="StackedBarTest.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:ig="http://schemas.infragistics.com/xaml" 
    Title="MainWindow" Height="350" Width="525" x:Name="root"> 
<Window.Resources> 
    <DataGrid x:Key="testGridResource" ItemsSource="{Binding LoadStatistics, ElementName=root}"></DataGrid> 
</Window.Resources> 

<Grid x:Name="LayoutRoot"> 
    <DataGrid x:Name="testGrid" ItemsSource="{Binding LoadStatistics, ElementName=root}"></DataGrid> 
+0

你在哪裏使用testGridResource?您需要設置封閉xaml元素的DataContext。 – Tilak

+0

@Tilak DataContext在類的構造函數中設置。它與testGrid使用的datacontext相同。另外,我綁定了一個命名元素(root)的屬性。 – Sam

+0

你在哪裏使用你創建的資源testGridResource? –

回答

0

看是否能幫助回答你的問題:Binding to static properties

+0

我認爲那篇文章討論了靜態綁定和動態綁定之間的區別。無論如何,解決方案對我來說並不明顯。你能否告訴我哪篇文章解決了我問的問題?謝謝。 – Sam

0

所以,你只是想BINF您的數據網格testGridResource,如果是的話這應該

<DataGrid x:Name="testGrid" ItemsSource="{Binding Source={StaticResource testGridResource}}"> 

不知道這是什麼你想要

也許這樣:

<DataGrid x:Name="testGridResource" ItemsSource="{Binding Path=LoadStatistics, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}} 
+0

沒有那不是我想要做的 - 我想將「testGridResource」的ItemsSource綁定到存在於窗口類(即「root」)上的名爲LoadStatistics的屬性。 – Sam

+0

更新的answear,可以工作 –

+0

謝謝sa_ddam213但這並不奏效。 – Sam

相關問題