반응형
ObjectDataProvider를 통해 ComboBox를 일반 사전에 바인딩하는 방법
코드 뒤에 있는 키/값 데이터로 ComboBox를 채우고 싶은데, 다음이 있습니다.
XAML:
<Window x:Class="TestCombo234.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:TestCombo234"
Title="Window1" Height="300" Width="300">
<Window.Resources>
<ObjectDataProvider x:Key="Choices" ObjectType="{x:Type local:CollectionData}" MethodName="GetChoices"/>
</Window.Resources>
<StackPanel HorizontalAlignment="Left">
<ComboBox ItemsSource="{Binding Source={StaticResource Choices}}"/>
</StackPanel>
</Window>
코드 이면:
using System.Windows;
using System.Collections.Generic;
namespace TestCombo234
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
}
public static class CollectionData
{
public static Dictionary<int, string> GetChoices()
{
Dictionary<int, string> choices = new Dictionary<int, string>();
choices.Add(1, "monthly");
choices.Add(2, "quarterly");
choices.Add(3, "biannually");
choices.Add(4, "yearly");
return choices;
}
}
}
키가 int이고 값이 string이 되려면 무엇을 변경해야 합니까?
ComboBox에 추가
SelectedValuePath="Key" DisplayMemberPath="Value"
더 쉬운 방법이 있습니다.
열거를 일반으로 변환합니다.사전 개체입니다.예를 들어, 평일이 포함된 콤보 상자를 원한다고 가정합니다(VB를 C#으로 변환).
Dim colWeekdays As New Generic.Dictionary(Of FirstDayOfWeek, String)
For intWeekday As FirstDayOfWeek = vbSunday To vbSaturday
colWeekdays.Add(intWeekday, WeekdayName(intWeekday))
Next
RadComboBox_Weekdays.ItemsSource = colWeekdays
XAML에서는 개체에 바인딩하도록 다음만 설정하면 됩니다.
SelectedValue="{Binding Path= StartDayNumberOfWeeek}" SelectedValuePath="Key"
DisplayMemberPath="Value" />
위의 코드는 모든 열거를 처리하기 위해 반사를 사용하여 쉽게 일반화할 수 있습니다.
이것이 도움이 되길 바랍니다.
DevExpress 17.1.7에서는 이러한 속성을 설정합니다.DisplayMember
그리고.ValueMember
사전의 경우 다음과 같습니다.
DisplayMember="Value"
ValueMember="Key"
언급URL : https://stackoverflow.com/questions/1605845/how-to-bind-a-combobox-to-generic-dictionary-via-objectdataprovider
반응형
'source' 카테고리의 다른 글
AWS S3 CLI를 사용하여 BASH에서 stdout으로 파일을 덤프하는 방법은 무엇입니까? (0) | 2023.04.26 |
---|---|
데이터 테이블 열 이름을 변경하는 방법 (0) | 2023.04.26 |
WPF에서의 이미지 동적 로드 (0) | 2023.04.21 |
C#에서 String이 값 유형처럼 동작하는 참조 유형인 이유는 무엇입니까? (0) | 2023.04.21 |
URIFormatException: 잘못된 URI: 잘못된 포트가 지정됨 (0) | 2023.04.21 |