我很好奇,因为我正在学习更多关于与 WPF 绑定的知识,你必须设置数据上下文来简单地设置单个属性的 {binding path=} 吗?我只是好奇,因为我正在从背后的代码的 MVVM 示例中学习,看来我有一种情况我想绑定到不在 ViewModel 的数据上下文中的东西,我更喜欢中间类而不是背后的代码来引用捆绑。那么我可以为第二个数据上下文或类似的东西引用另一个类吗?或者我可以设置一个资源键并以某种方式引用该类吗?如果可能的话,我最终想访问一个单独的类中的属性。
例如:
<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
}
}