4

初めての投稿なので、上手くいかないかもしれませんが、頑張ります…

ばかげているように聞こえるかもしれませんが、答えを見つけることができませんでした。

Window クラスがあり、.cs ファイルにはいくつかのプロパティがあります。

public ImageSource Obal { get; set; }

次に、デザイナーでいくつかの画像、ボタンなどを追加しました。また、ウィンドウの名前を設定します: Name="Somename"

そのプロパティにアクセスする方法を知りたいので、たとえば、次のように画像のソース プロパティを設定できます。

画像名="Blah" ソース="Obal"

これで、バインディングを通じて Source 値を設定できることがわかりました。

Source="{Binding ElementName=karta, Path=Obal}"

しかし、私は毎回このようにする必要がありますか?とにかく、これらのプロパティはすべて Window クラスからのものです...そして、Image.Style の Storyboard の image.Source を変更したいので、私も尋ねています...そこでバインディング使用することはできません...

私が明確であったことを願っています。事前にすべてに感謝します。

4

1 に答える 1

2

XAML ファイルのコード ビハインド プロパティにアクセスするには、次の 3 つの手順に従う必要があります。

  1. 次のように、xaml ファイルで名前空間を参照します。

    xmlns:local="clr-namespace:AccessACodeBehindPropertyinXaml"
    
  2. Windows.Resources マークアップで参照した名前空間にキーを提供します。このキーにより、任意のクラス、XAML ファイルで参照されている名前空間のプロパティにアクセスできます。

    <Window.Resources>
            <local:ImageClass x:Key="imageClass"/>
    </Window.Resources>
    
  3. 以下のように Binding クラスの Source & Path プロパティを使用して、XAML でコントロールのプロパティをバインドする必要があります。

    <Label Content="{Binding Source={StaticResource imageClass}, Path=ImageName}" Name="label1" />
    

クラス プロパティをラベル コントロールにバインドするサンプル アプリケーションを作成しました。見てみる

MainWindow.xaml.cs ファイル:

namespace AccessACodeBehindPropertyinXaml
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();                       
        }
    }

    public class ImageClass
    {
        string m_ImageName;

        public ImageClass()
        {
            m_ImageName = "My Image Name";
        }
        public string ImageName
        {
            get
            {
                return m_ImageName;
            }
            set
            {
                m_ImageName = value;
            }
        }
    }
}

MainWindow.xaml

<Window x:Class="AccessACodeBehindPropertyinXaml.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:AccessACodeBehindPropertyinXaml"
        Title="MainWindow" Height="350" Width="525" Name="ImageWindow">
    <Window.Resources>
        <local:ImageClass x:Key="imageClass"/>
    </Window.Resources>
    <Grid>
        <Label Content="{Binding Source={StaticResource imageClass}, Path=ImageName}" Height="28" HorizontalAlignment="Left" Margin="159,126,0,0" Name="label1" VerticalAlignment="Top" Width="109" />
    </Grid>
</Window>

さらに明確にする必要がある場合は、お知らせください。

于 2012-12-16T07:02:42.770 に答える