我在其中定义了一个带有4个TextBlock的stackpanel,并定义了一个包含4个字符串作为属性的对象。
class a
{
public string str1;
public string str2;
public string str3;
public string str4;
}
<StackPanel>
<TextBlock x:Name="txt1" />
<TextBlock x:Name="txt2" />
<TextBlock x:Name="txt3" />
<TextBlock x:Name="txt4" />
</StackPanel>
我想定义类a的对象实例和stackpanel TextBlock.Text之间的绑定
我该怎么办?
答案 0 :(得分:1)
要绑定到str1-4,它们必须至少获取/设置属性(如果在视图连接到类a的实例后它们将发生更改,则通知属性)。
class a
{
public string str1 { get; set; }
public string str2 { get; set; }
public string str3 { get; set; }
public string str4 { get; set; }
}
<StackPanel>
<TextBlock x:Name="txt1" Text={Binding str1} />
<TextBlock x:Name="txt2" Text={Binding str2} />
<TextBlock x:Name="txt3" Text={Binding str3} />
<TextBlock x:Name="txt4" Text={Binding str4} />
</StackPanel>
我不知道你的类存在于哪里,或者你是否正在使用MVVM(我猜不是),但至少在视图的构造函数中你需要设置视图的DataContext(或者只是堆栈)面板)到你的“a”实例。
e.g。
public MyView()
{
InitializeComponent();
this.DataContext = myaInstance;
}
或者如果你只想定位StackPanel,那么命名StackPanel并设置它的DataContext:
<StackPanel x:Name="MyStackPanel">
public MyView()
{
InitializeComponent();
this.MyStackPanel.DataContext = myaInstance;
}