8

MyDataColorNameプロパティを格納するだけのクラスです。

XAML では、次の方法で XAML データ コンテキストのインスタンスを作成できます。

<c:MyData x:Key="myDataSource">

今、

コード ビハインドで MyData のこのインスタンス (「myDataSource」キーを使用して XAML で作成された) に格納されている ColorName にアクセスして変更するにはどうすればよいですか?

質問が明確であることを願っています。プログラムで色を変更したいと思います。MyData クラスのインスタンスを取得するにはどうすればよいですか? ありがとうございました

<DockPanel
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:c="clr-namespace:SDKSample">
  <DockPanel.Resources>
    <c:MyData x:Key="myDataSource"/>
  </DockPanel.Resources>
  <DockPanel.DataContext>
    <Binding Source="{StaticResource myDataSource}"/>
  </DockPanel.DataContext>
  <Button Background="{Binding Path=ColorName}"
          Width="150" Height="30">I am bound to be RED!</Button>
</DockPanel>
4

1 に答える 1

17

コード ビハインドからリソースにアクセスするにはDockPanel、名前を付けてから次のようにします。

var resource = dockPanel.Resources["myDataSource"];

または、その DataContext を取得できます。

var dataContext = dockPanel.DataContext as MyData
于 2013-07-05T19:54:01.833 に答える