【发布时间】:2020-01-28 14:30:46
【问题描述】:
我的 xaml 中有一个带有文本框的数据模板,它从 observablecollection 中获取数据。
<c:NameList x:Key="NameListData"/>
<DataTemplate x:Key="NameItemTemplate" x:Name="CredentialsofDomains">
<Border Name="BorderControl" Background="Transparent" BorderThickness="0" Padding="0">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock x:Name="DomainNameForCredentials" FontSize="18" Grid.Row="2" Grid.Column="0" Text="{Binding Path=DomaineName}" Margin="0,0,40,0"></TextBlock>
<Label Grid.Row="1" Grid.Column="1" Content="samAccountName"></Label>
<Label Grid.Row="1" Grid.Column="2" Content="Passwort"></Label>
<TextBox x:Name="samAccountNameForCredentials" Grid.Row="2" Grid.Column="1" Text="{Binding Path=LoginName}" Width="100" />
<TextBox x:Name="passwordForCredentials" Grid.Row="2" Grid.Column="2" Text="{Binding Path=PassWord}" Width="100"/>
</Grid>
</Border>
</DataTemplate>
<ListBox Width="auto"
ItemsSource="{Binding Source={StaticResource NameListData}}"
ItemTemplate="{StaticResource NameItemTemplate}"
IsSynchronizedWithCurrentItem="True" />
<Fluent:Button Name="saveDomainCredentials" SizeDefinition="Large" VerticalAlignment="Bottom" HorizontalAlignment="Right" Header="Speichern" Click="SaveDomainCredentials_Click"></Fluent:Button>
现在我想获取按钮点击时显示的数据,我现在如何获取点击事件的值?
这就是我收藏的代码:
public partial class NameList : ObservableCollection<SetCredentialsForAD>
{
public NameList() : base()
{
using var forest = Forest.GetCurrentForest();
Forest currentForest = Forest.GetCurrentForest();
DomainCollection domains = currentForest.Domains;
foreach (Domain objDomain in domains)
{
Add(new SetCredentialsForAD(objDomain.ToString(), "", ""));
}
}
}
public class SetCredentialsForAD
{
private string loginName;
private string passWord;
private string domainName;
public SetCredentialsForAD(string domain, string first, string last)
{
this.domainName = domain;
this.loginName = first;
this.passWord = last;
}
public string DomaineName
{
get { return domainName; }
set { domainName = value; }
}
public string LoginName
{
get { return loginName; }
set { loginName = value; }
}
public string PassWord
{
get { return passWord; }
set { passWord = value; }
}
}
现在我需要将这些值保存到设置中,以便稍后在我的应用程序中使用它们 每个活动目录域都需要一个名称和密码,这就是我要解决的问题。
为每个已建立的项目获取一条消息作为validItem:
private void SaveDomainCredentials_OnClick(object sender, RoutedEventArgs e)
{
foreach (var item in ListBox.SelectedItems.OfType<SetCredentialsForAD>())
{
MessageBox.Show("Domaine: " + item.DomaineName);
}
}
【问题讨论】: