none
C#でバインデイィング RRS feed

  • 質問

  • いつもお世話になっています。

    C#でWPF(3.5SP1)での開発です。

    下記のようにxmalソースがあります。

      <Window.Resources>
            <x:Array x:Key="TYPE1" Type="{x:Type sys:String}">
                <sys:String>a1</sys:String>
                <sys:String>a2</sys:String>
                <sys:String>a3</sys:String>
             </x:Array>
            <x:Array x:Key="TYPE2" Type="{x:Type sys:String}">
                <sys:String>b1</sys:String>
                <sys:String>b2</sys:String>
                <sys:String>b3</sys:String>
            </x:Array>

        </Window.Resources>
        <WrapPanel Orientation="Horizontal" DataContext="{Binding Source={StaticResource TYPE1}, Path=.}">
            <ComboBox Name="A1"  SelectionChanged="SelectionChangedEventHandler" ItemsSource="{Binding}" IsSynchronizedWithCurrentItem="True" Margin="5" />
            <TextBlock Text="{Binding /}" Margin="5" />
            <ComboBox Name="A2" ItemsSource="{Binding Source={StaticResource TYPE2}}" IsSynchronizedWithCurrentItem="True" Margin="5" VerticalAlignment="Top" SelectionChanged="A2_SelectionChanged" />
             </WrapPanel>

     

    で、ソース中の

    <TextBlock Text="{Binding /}" Margin="5" />
            <ComboBox Name="A2" ItemsSource="{Binding Source={StaticResource TYPE2}}" IsSynchronizedWithCurrentItem="True" Margin="5" VerticalAlignment="Top" SelectionChanged="A2_SelectionChanged" />

    これをC#でのソースでのコーディングするには、どのようにしたらよろしいでしょうか?

    よろしくお願いします。

    2010年7月12日 4:08

回答

  • 特に特別なことがあるとも思えませんが。Binding インスタンス作って、Source プロパティとか設定して、SetBinding で TextBlock.TextProperty とかにバインディングするだけです。
    • 回答の候補に設定 山本春海 2010年7月13日 7:38
    • 回答としてマーク 山本春海 2010年7月14日 5:10
    2010年7月12日 4:50
  • StaticResourceはFindResource("TYPE2")みたいにやれば、OKだと思います。

    一応コード例を示すと。。。
    var b = new Binding("/");
    textBlock.SetBinding(TextBlock.TextProperty, b);

    みたいになります。


    かずき Blog:http://blogs.wankuma.com/kazuki/
    • 回答の候補に設定 山本春海 2010年7月13日 7:38
    • 回答としてマーク 山本春海 2010年7月14日 5:10
    2010年7月12日 5:02

すべての返信

  • 特に特別なことがあるとも思えませんが。Binding インスタンス作って、Source プロパティとか設定して、SetBinding で TextBlock.TextProperty とかにバインディングするだけです。
    • 回答の候補に設定 山本春海 2010年7月13日 7:38
    • 回答としてマーク 山本春海 2010年7月14日 5:10
    2010年7月12日 4:50
  • StaticResourceはFindResource("TYPE2")みたいにやれば、OKだと思います。

    一応コード例を示すと。。。
    var b = new Binding("/");
    textBlock.SetBinding(TextBlock.TextProperty, b);

    みたいになります。


    かずき Blog:http://blogs.wankuma.com/kazuki/
    • 回答の候補に設定 山本春海 2010年7月13日 7:38
    • 回答としてマーク 山本春海 2010年7月14日 5:10
    2010年7月12日 5:02
  • StaticResourceはFindResourceで取得するんですね

    できました。

     

    ありがとうございます。

    2010年7月12日 6:33