Skip to content

Commit ae40b29

Browse files
committed
Fix issue: MultiSelectComboBox support single multiple columns (#195
1 parent 336d1ae commit ae40b29

2 files changed

Lines changed: 71 additions & 0 deletions

File tree

src/WPFDevelopers.Samples.Shared/ExampleViews/MultiSelectComboBoxExample.xaml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,43 @@
132132
</wd:MultiSelectComboBox.View>
133133
</wd:MultiSelectComboBox>
134134
</Grid>
135+
<Grid HorizontalAlignment="Center" wd:PanelHelper.Spacing="3">
136+
<Grid.ColumnDefinitions>
137+
<ColumnDefinition Width="Auto" />
138+
<ColumnDefinition />
139+
</Grid.ColumnDefinitions>
140+
<TextBlock VerticalAlignment="Center" Text="证券代码:" />
141+
<wd:MultiSelectComboBox
142+
Grid.Column="1"
143+
Width="200"
144+
HorizontalAlignment="Left"
145+
wd:ElementHelper.CornerRadius="3"
146+
wd:ElementHelper.Watermark="请选择股票代码"
147+
DisplayMemberPath="StkFull"
148+
IsSelectAllActive="True"
149+
ItemsSource="{Binding StkInfoList, RelativeSource={RelativeSource AncestorType=local:MultiSelectComboBoxExample}}"
150+
SearchWatermark="请选择股票代码"
151+
ShowType="Tag">
152+
<wd:MultiSelectComboBox.View>
153+
<GridView>
154+
<GridViewColumn Width="30">
155+
<GridViewColumn.CellTemplate>
156+
<DataTemplate>
157+
<CheckBox
158+
HorizontalAlignment="Center"
159+
VerticalAlignment="Center"
160+
wd:ElementHelper.CornerRadius="3"
161+
IsChecked="{Binding IsSelected, RelativeSource={RelativeSource AncestorType={x:Type ListViewItem}}}" />
162+
</DataTemplate>
163+
</GridViewColumn.CellTemplate>
164+
</GridViewColumn>
165+
<GridViewColumn DisplayMemberBinding="{Binding StkTypeName}" Header="类型" />
166+
<GridViewColumn DisplayMemberBinding="{Binding StkId}" Header="代码" />
167+
<GridViewColumn DisplayMemberBinding="{Binding StkName}" Header="名称" />
168+
</GridView>
169+
</wd:MultiSelectComboBox.View>
170+
</wd:MultiSelectComboBox>
171+
</Grid>
135172
</UniformGrid>
136173
<controls:CodeViewer.SourceCodes>
137174
<controls:SourceCodeModel CodeSource="/WPFDevelopers.SamplesCode;component/ExampleViews/MultiSelectComboBoxExample.xaml" CodeType="Xaml" />

src/WPFDevelopers.Samples.Shared/ExampleViews/MultiSelectComboBoxExample.xaml.cs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,18 @@ public ObservableCollection<UserInfo> ItemsSource
2828

2929
public static readonly DependencyProperty ItemsSourceProperty =
3030
DependencyProperty.Register("ItemsSource", typeof(ObservableCollection<UserInfo>), typeof(MultiSelectComboBoxExample), new PropertyMetadata(null));
31+
32+
33+
public ObservableCollection<StkInfo> StkInfoList
34+
{
35+
get { return (ObservableCollection<StkInfo>)GetValue(StkInfoListProperty); }
36+
set { SetValue(StkInfoListProperty, value); }
37+
}
38+
39+
public static readonly DependencyProperty StkInfoListProperty =
40+
DependencyProperty.Register("StkInfoList", typeof(ObservableCollection<StkInfo>), typeof(MultiSelectComboBoxExample), new PropertyMetadata(null));
41+
42+
3143
public MultiSelectComboBoxExample()
3244
{
3345
InitializeComponent();
@@ -44,6 +56,13 @@ private void MultiSelectComboBoxExample_Loaded(object sender, RoutedEventArgs e)
4456

4557
ItemsSource = new ObservableCollection<UserInfo>(list2);
4658
SelectedItems = new ObservableCollection<UserInfo>(list2.Where(x => x.ID == "1" || x.ID == "3"));
59+
60+
var stkInfos = new List<StkInfo>();
61+
stkInfos.Add(new StkInfo() { StkName = "平安银行", StkId = "000001", StkType = "sz", StkTypeName = "深A" });
62+
stkInfos.Add(new StkInfo() { StkName = "上证指数", StkId = "000001", StkType = "sh", StkTypeName = "指数" });
63+
stkInfos.Add(new StkInfo() { StkName = "浦发银行", StkId = "600000", StkType = "sh", StkTypeName = "沪A" });
64+
StkInfoList = new ObservableCollection<StkInfo>(stkInfos);
65+
4766
}
4867

4968
private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
@@ -54,4 +73,19 @@ private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
5473
WPFDevelopers.Controls.MessageBox.Show(message, "选中内容", MessageBoxButton.OK, MessageBoxImage.Information);
5574
}
5675
}
76+
public class StkInfo
77+
{
78+
public string StkId { get; set; }
79+
public string StkName { get; set; }
80+
public string StkType { get; set; }
81+
public string StkTypeName { get; set; }
82+
public string StkFull
83+
{
84+
get
85+
{
86+
return StkType + StkId;
87+
}
88+
}
89+
90+
}
5791
}

0 commit comments

Comments
 (0)