目录
一、单按钮如何传递对应实体
XAML:
<Button Content="查看详情" Margin="5,5,5,5" Background="LightPink" Click="Details"/>
.cs(上图窗体):
private void Details(object sender, RoutedEventArgs e)
{
var selectedCompany = (sender as FrameworkElement).DataContext as Company; // 点击详情后,传入Company这个实体
AddOrUpdate windows = new AddOrUpdate(selectedCompany);//传递给下一个界面(构造函数)
windows.Show();//打开下一个界面
}
.cs(新打开窗体)
public partial class AddOrUpdate : Window
{
private Company Companymodel;
public AddOrUpdate(Company selectedCompany=null)//打开窗口可传一个实体进来
{
InitializeComponent();
Companymodel = selectedCompany;
}
private void Button_Click(object sender, RoutedEventArgs e)//保存按钮
{
Console.WriteLine(Companymodel);//使用全局变量,访问该实体
}
}
二、初始化窗体通过注册事件调用方法
public MainWindow()//总思路:初始化注册事件,事件调用方法
{
InitializeComponent();//初始化
this.Loaded += MainWindow_Loaded;// 注册Loaded事件,在窗口加载时调用Search_Click方法
}
private void MainWindow_Loaded(object sender, RoutedEventArgs e)//事件调用方法
{
Search_Click();
}
private void Search_Click()
{
// 这里是你的Search_Click方法的实现
}
三、一个窗体调用另一个窗体的方法
【注意】被调用的窗体的方法修饰符至少为Pubic
private void Button_Click(object sender, RoutedEventArgs e)//保存按钮
{
MainWindow mainWindow = Application.Current.Windows.OfType<MainWindow>().FirstOrDefault();//获取另一个窗体对的实例
mainWindow.Search_Click(sender, e);//调用方法
}
四、打开和关闭窗体
private void OpenWindow_Click(object sender, RoutedEventArgs e)
{
NewWindow window = new NewWindow();
window.ShowDialog();
}
private void CloseWindow_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
五、询问窗体
bool b = MessageBox.Show("您确定要删除吗?", "确认删除", MessageBoxButton.YesNo) == MessageBoxResult.Yes;
六、获取下拉框选中后的值
xaml(Name是stage)
<ComboBox Grid.Column="1" HorizontalAlignment="Left" x:Name="stage" Margin="70,50,0,0" VerticalAlignment="Top" Width="120" SelectedIndex="0" SelectionChanged="Search_Click">
<ComboBoxItem Content="全部阶段"/>
<ComboBoxItem Content="已投递"/>
<ComboBoxItem Content="面试"/>
<ComboBoxItem Content="已通过"/>
<ComboBoxItem Content="已拒绝"/>
</ComboBox>
cs
string selectedStage = ((ComboBoxItem)stage.SelectedItem).Content.ToString();//获取选中后的值
七、DataGrid多出一行
xaml
<DataGrid x:Name="CompanyList" ItemsSource="{Binding CompanyList}" AutoGenerateColumns="False">
</DataGrid>
cs
CompanyList.CanUserAddRows = false;//清空多出来的空白行