WPF とのバインドについて詳しく学んでいたので、興味がありました。データ コンテキストを設定して、単一のプロパティの {binding path=} を設定する必要がありますか? コードビハインドのMVVMの例から学んでいたので、私はただ興味がありました.ViewModelのデータコンテキストではないものにバインドしたい状況があるようです.バインディング。では、2 番目のデータ コンテキストまたは同様のものを参照するために、さらに別のクラスを参照できますか? または、リソース キーを設定してクラスを参照することはできますか? 可能であれば、最終的には別のクラスのプロパティにアクセスしたいと考えています。
例えば:
<Window x:Class="WPFTestBinding.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:da="clr-namespace:WPFTestBinding.DataAccess"
xmlns:main="clr-namespace:WPFTestBinding"
Title="MainWindow" Height="350" Width="525">
<Grid>
<StackPanel>
<Label Content="Here we go: "/>
<TextBox x:Name="testtext" />
<Label Height="50" />
<!-- CODE BELOW WILL NOT WORK -->
<TextBox Text="{Binding Path=TestID}" x:Name="testtext2" />
</StackPanel>
</Grid>
</Window>
コードビハインドで TextBox の値を設定できることはわかっています。プロパティの例では機能しますが、バインディングでは機能しません。クラスのプロパティに対してその場で単純なバインディングを行う方法はありますか? これを行う単純な例は見つかりませんでした。オンラインで検索し、バインドを学習している間、ほとんどの例は、設定データ コンテキストの非常に強力なセットまたは非常に単純な静的リソースの例のいずれかです。{Binding Path=} を使用して、その場で他のプロパティを拡張して、クラス内のコードを取得できるかどうかに興味がありました。
コードの残りの部分は非常に単純です。
namespace WPFTestBinding.DataAccess
{
class Test
{
public string TestID { get { return "This is my test"; } }
}
}
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataAccess.Test t = new Test();
testtext.Text = t.TestID; // code behind works easily
}
}