我環顧四周,發現了一些東西,現在卡在了下拉區域顯示的兩列的組合框中。我有一個可用的xaml主題,並且組合框「樣式」被定義,並且如預期那樣運行良好,所以這部分是可以的。WPF Style Combobox在下拉列中有兩列
現在,我有一個組合框,我需要顯示兩個值,將其視爲下拉的狀態縮寫和狀態名稱,來自項目的DataTable.DefaultView綁定源。
如果我有
<my:cboStates TextSearch.TextPath="StateAbbrev">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" TextSearch.Text="{Binding Path=StateAbbrev}">
<TextBlock Text="{Binding Path=StateAbbrev}"/>
<TextBlock Text="{Binding Path=FullStateName}" Margin="10 0"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</my:cboStates>
這個工程。現在,我如何/在哪裏被卡住......現在,我想要說5種不同形式的相同功能,並且所有內容都顯示相同的內容,並且如果有過更改(不是這個,但對於其他多列組合框),我不想一直把這個直接放在窗體的XAML文件中。
我一直希望把主題的資源字典文件,並不斷重複使用「風格」反覆。說得通。然而,當我這樣做,並且綁定是將數據表,唯一的結果試圖做一個樣式是下拉當我得到顯示
System.Data.DataRowView
System.Data.DataRowView
System.Data.DataRowView
System.Data.DataRowView
而不是實際的2列的值。 這裏是我在「主題」資源字典中的內容。
<DataTemplate x:Key="myStateComboTemplate" >
<StackPanel Orientation="Horizontal" >
<TextBlock Text="{Binding Path=StateAbbrev}"/>
<TextBlock Text="{Binding Path=FullStateName}"/>
</StackPanel>
</DataTemplate>
<Style x:Key="StyleMyStatesCombobox" TargetType="{x:Type ComboBox}"
BasedOn="{StaticResource MyOtherWorkingComboBoxStyle}" >
<Setter Property="TextSearch.TextPath" Value="{Binding Path=StateAbbrev}" />
<Setter Property="ItemTemplate" Value="{StaticResource myStateComboTemplate}" />
</Style>
所以,如果我有兩個實例,我的「cboStates」類的窗體上創建的,並設置一個第一家上市的明確造型,以及基於「樣式」設置第二個,第二個由失敗只顯示重複的System.Data.DataRowView條目,而不是實際的數據內容。
我錯過了什麼。
因此,要澄清什麼我正在尋找... 美國...恩數據
AL Alabama
AK Alaska
AZ Arizona
AR Arkansas
CA California
CO Colorado
CT Connecticut
DE Delaware
我想組合框將顯示縮寫 AL,AK,AZ等窄組合框。這也將是返回時的「SelectedValue」。
實際的下拉列表將顯示上面列出的數據,顯示縮寫和狀態的長描述。
樣品所需的組合框
爲什麼你不能將兩者結合在一起?我以爲你總是可以嘗試使用一個Tuple,但不知道如何工作。 –
@Bob,被認爲是Tuple,但這只是一個簡單的例子,它將被組裝到任何人都能理解的組合框中。我實際上會有各種類似的組合框,它們會有來自表格的數據並且可能會有所不同,因此不是固定值。我不想查詢數據庫,然後循環訪問另一個存儲元組,以便根據結果組合框表示需要重新分析鍵/值/替換值/額外鍵等。 – DRapp
怎麼樣'Dictionary'?將'Key'綁定到一個'TextBlock'和'Value'到另一個'TextBlock'?還是有更多可能超過兩行? –