尝试从 XAML 绑定到同一类的成员变量(从 .xaml 绑定到 .xaml.cs)
本文关键字:绑定 xaml cs 成员 一类 变量 XAML | 更新日期: 2023-09-27 18:31:57
在我的 XAML 中,我有代码
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<StackPanel>
<TextBlock Height="30" Name="tb1" Text="{Binding meetingX}" />
</StackPanel>
</Grid>
在 .xaml 中.cs属于上面的 .xaml,我有
public static Meeting theMeeting;
public string meetingX;
public MeetingOverview()
{
InitializeComponent();
theMeeting = (Meeting)App.meetings.ElementAt(App.selectedMeetingIndex);
meetingX = theMeeting.MeetingName.ToString();
}
public string MeetingX
{
get
{
return meetingX;
}
set
{
if (value != meetingX)
{
Debug.WriteLine("set meetingXto: " + value.ToString());
meetingX= value;
}
}
}
文本显示为空白,因此它不会读取会议 X 中的值。我添加了一个Debug.WriteLine来检查var中是否有一些文本。
谁能给我一些关于如何使我打算做的事情发挥作用的提示?
非常感谢,-法典
只能绑定到属性:
Text="{Binding meetingX}" <!-- --> Text="{Binding MeetingX}"
您需要设置视图的数据上下文:
public MeetingOverview()
{
theMeeting = (Meeting)App.meetings.ElementAt(App.selectedMeetingIndex);
meetingX = theMeeting.MeetingName.ToString();
this.DataContext = this;
InitializeComponent();
}
如果值要更改,则需要在类上实现 INotifyPropertyChanged。此外,您还应该查看 MVVM,因为此类信息应放置在 ViewModel 中。
这两个主题在网络上都有广泛的博客,所以我相信你内心的谷歌搜索者;)
希望这有帮助,
巴布。
将属性转换为 DependencyProperty:
public String MeetingX
{
get { return (String)this.GetValue(MeetingXProperty); }
set { this.SetValue(MeetingXProperty, value); }
}
public static readonly DependencyProperty MeetingXProperty = DependencyProperty.Register(
"MeetingX", typeof(String), typeof(MeetingOverview),new PropertyMetadata(""));