【发布时间】:2016-04-12 22:02:35
【问题描述】:
我是一名新程序员。我会尽力解释。我正在编写 WPF 中的工具。我做了一个用户控件如下。
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30"></ColumnDefinition>
<ColumnDefinition Width="150"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition Width="50"></ColumnDefinition>
<ColumnDefinition Width="30"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Button x:Name="DelOutConBT" Margin="5" Content="X" Click=" Delete ConnSet"></Button>
<Label x:Name="OutConLB" Grid.Column="1" ></Label>
<ComboBox x:Name="InConComB" Grid.Column="2"></ComboBox>
<TextBox x:Name="ConnValueTX" Grid.Column="3" Margin="5"></TextBox>
<Button Grid.Column="4" Margin="5" Content=">>"></Button>
</Grid>
在主窗口中,我已经编写了一个列表框和一个选项卡。列表框将填充一些运行 Python 脚本的项目。
现在,我想让用户通过在列表框中选择一个项目并单击主窗口中的按钮来添加用户控件。
我的问题是用户控件如何在添加时自动加载信息。我希望用户控件中的标签显示从列表框中选择的项目,而组合框显示列表框中的所有项目。
然后,通过单击用户控件中的“>>”按钮,可以将用户控件中的数据保存到类或其他。因为我将使用另一个 Python 脚本填充用户控件中的所有数据。
这是我编写的将用户控件添加到主窗口的程序。
Mainwindow.xaml.cs
private void ConSel_Click(object sender, RoutedEventArgs e)
{
if (ListB.SelectedItem != null)
{
string name = ((ListBoxItem)ListB.SelectedItem).Name;
ConnSet CSobj = new ConnSet();
StkConn.Children.Add(CSobj);
}
}
【问题讨论】:
-
您应该使用 ItemsControl 中的 TemplateSelector 来执行此操作。这样会比较容易。
标签: c# wpf user-controls