Я создаю приложение с WPF C # и пытаюсь отобразить значения в списке, который показывает, когда выбран элемент из другого списка. Оба списка должны получать данные из моей базы данных SQL.
списки, когда ничего не выбрано:
kistboxes, когда элемент выбран:
Вот так я отображаю значения в первом списке (прежде чем кто-то скажет это, я знаю, что он уязвим для внедрения SQL).
C #:
public void TradeList() {
DataTable dt = new DataTable();
SqlDataAdapter adpt = new SqlDataAdapter("SELECT DISTINCT Trade from tblTrades", sqlConTwo);
adpt.Fill(dt);
foreach(DataRow dr in dt.Rows) {
Area.Items.Add(dr["Trade"].ToString());
}
}
XAML:
<StackPanel>
<TextBox x:Name="TradesSelected" Width="665" BorderBrush="#FF939393" Padding="2" BorderThickness="1"></TextBox>
<ListBox SelectionMode="Multiple" x:Name="Trade" Width="665" Height="100" BorderBrush="#FF939393" Padding="2" BorderThickness="1 0 1 1" ItemsSource="{Binding Path=Trade}" SelectionChanged="Trade_SelectionChanged" >
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="IsSelected" Value="{Binding IsSelected}"/>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
</StackPanel>
<StackPanel Margin="10 0 0 0">
<TextBox x:Name="SkillSelected" Width="665" BorderBrush="#FF939393" Padding="2" BorderThickness="1"></TextBox>
<ListBox SelectionMode="Multiple" x:Name="Skills" Width="665" Height="100" BorderBrush="#FF939393" Padding="2" BorderThickness="1 0 1 1" ItemsSource="{Binding Path=Skills}">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="IsSelected" Value="{Binding IsSelected}"/>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
</StackPanel>
В моей таблице колонка с навыками в ней называется Навыки. Я нашел способ сделать это путем жесткого кодирования всех сделок и навыков, но это не идеально, так как в моей таблице много строк, и это будет очень много времени.