2012-11-26 105 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

相关问题