次のスニペットでは、色を (文字列として) コントロールに渡し、バインディングを使用してボタンの背景に色を割り当てようとしています。ただし、無視されます。何がうまくいかないのですか?
XAML は次のとおりです。
<Window x:Class="SDKSample.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:SDKSample"
Title="MainWindow" Height="350" Width="525">
<DockPanel>
<DockPanel.Resources>
<local:MyData x:Key="myDataSource" />
</DockPanel.Resources>
<DockPanel.DataContext>
<Binding Source="{StaticResource myDataSource}" />
</DockPanel.DataContext>
<!--<Button Background="Red" Width="250" Height="25">RED</Button>-->
<Button Background="{Binding Source={StaticResource myDataSource}, Path=ColorName}" Width="150" Height="30">I'm bound to be red</Button>
</DockPanel>
</Window>
コードビハインドは次のとおりです。
namespace SDKSample
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
MyData md = new MyData("Red");
this.DataContext = md.ColorName;
}
}
public class MyData
{
private Color colorname;
public MyData()
{
}
public MyData(string value)
{
Color col = (Color)ColorConverter.ConvertFromString(value);
this.colorname = col;
}
public Color ColorName
{
get { return colorname; }
set
{
this.colorname = value;
}
}
}
}