gpt4 book ai didi

c# - ComboBox onChange 后 TextBox 不显示值(WPF、C#、Binding)

转载 作者:行者123 更新时间:2023-11-30 21:41:23 24 4
gpt4 key购买 nike

我的 UserControl 包含 ComboBox 和 TextBox:

 <ComboBox x:Name="cmbId" SelectionChanged="cmbId_SelectionChanged" />
<TextBox x:Name="txb1" Visibility="Hidden" Text="{Binding Path=FirstName, UpdateSourceTrigger=PropertyChanged}" />

我已将值加载到 ComboBox:

  public MyDataView()
{
InitializeComponent();
MyDBViewDataContext mydata = new MyDBViewDataContext();
cmbId.ItemsSource = (from q in mydata.test_views
select q.Id).ToList();
}

当用户在 ComboBox 上选择项目时,TextBox 应显示值:

private void cmbId_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
int myId = 0;
Int32.TryParse(cmbId.Text, out myId);

txb1.Visibility = Visibility.Visible;

MyDBViewDataContext myDataList = new MyDBViewDataContext();
var queryAll = (from q in myDataList.test_views
where q.Id.Equals(myId)
select q);
}

但它不起作用。缺少什么或我做错了什么?

最佳答案

如果两者都是IdFirstName是您的实体类的属性,您可以设置 ItemsSource ComboBox 的属性(property)到IEnumerable<YourEntityType>并绑定(bind) Text TextBox 的属性(property)到 FirstName SelectedItem 的属性(property)的 ComboBox :

public MyDataView()
{
InitializeComponent();
MyDBViewDataContext mydata = new MyDBViewDataContext();
cmbId.ItemsSource = (from q in mydata.test_views
select q).ToList();
}

<ComboBox x:Name="cmbId" DisplayMemberPath="Id"/>
<TextBox x:Name="txb1" Visibility="Hidden" Text="{Binding Path=SelectedItem.FirstName, UpdateSourceTrigger=PropertyChanged, ElementName=cmbId}" />

那么就不需要处理SelectionChanged了完全没有事件。

另一种选择是实际设置 Text TextBox 的属性(property)在事件处理程序中:

txb1.Text = var queryAll = (from q in myDataList.test_views
where q.Id.Equals(myId)
select q.FirstName).FirstOrDefault();

关于c# - ComboBox onChange 后 TextBox 不显示值(WPF、C#、Binding),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43387953/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com