1

以下の XAML フラグメントでは、"testGrid" に対して ItemsSource が正しく設定されていますが、"testGridResource" に対しては null です。バインディングを介してリソースとして定義されたグリッドの ItemsSource を設定するにはどうすればよいですか? より一般的には、バインディングを介して静的リソースとして定義されたオブジェクトのプロパティを設定するにはどうすればよいですか (他のオブジェクトを使用しているアプリの例としてデータグリッドのみを使用しています)。

<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>
4

3 に答える 3

0

したがって、DataGridをtestGridResourceにbinfしたいだけです。そうであれば、これは機能するはずです。

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

これがあなたの望むものかどうかわからない

多分これ:

<DataGrid x:Name="testGridResource" ItemsSource="{Binding Path=LoadStatistics, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}
于 2012-11-26T20:54:05.947 に答える
0

基本的に、答えは次のとおりです。リソースがxamlで使用されていない場合、そのリソースは解析されないため、バインディングのターゲットであるプロパティはnullで表示されます。したがって、上記で投稿されたバインディングはすべて正しいですが、リソースがxamlで使用されたことがないため、解析されなかったため、ItemSourceはnullに見えました。

このリンクを参照してください:

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/7aed2cbf-1980-4f3d-8354-83227662f428

于 2012-12-05T01:00:51.180 に答える
0

これがあなたの質問に答えるのに役立つかどうかを参照してください:静的プロパティへのバインディング

于 2012-11-26T17:10:52.647 に答える