我需要像Combobox一样创建一个userControl。 在需要TreeView和Button的项目中。 如果我导航树,则项目应转到底部的文本框。 如果我单击按钮,树应该折叠。 我的第一个想法是像这样,但它并不好。
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding Adresse, Mode=TwoWay}" MaxLength="50" MinWidth="170" Grid.Row="5" Margin="5,2,5,2"/>
<Button Width="25" Margin="2" Click="Down">
<Image Source="/C1_net;component/Images/arrow.jpg" HorizontalAlignment="Left" />
</Button>
</StackPanel>
<StackPanel x:Name="Tree" Orientation="Vertical" Visibility="Collapsed">
<sdk:TreeView Height="200" Name="treeView1" Width="200" />
<Button Content="{Binding Path=ApplicationStrings.OKButton, Source={StaticResource ResourceWrapper}}" Width="75" Margin="5" Click="OnOk" HorizontalAlignment="Right"/>
</StackPanel>
</StackPanel>
</Grid>
如果我切换到Visible,则Control需要更多空间。 所以我需要将树放在窗口的其余部分前面。 有什么想法吗?
答案 0 :(得分:0)
确定。
我认为你应该重新审视你的互动。
我的问题很难想到,如果我选择i Item,The Tree wood将被关闭。 我将在Hirarchical DataObjekt中导航并将路径作为选择项。 所以现在我要这样做:
public interface ITreeViewItemModel
{
string SelectedValuePath { get; }
bool IsExpanded { get; set; }
bool IsSelected { get; set; }
IEnumerable<ITreeViewItemModel> GetHierarchy();
IEnumerable<string> GetDisplayHierarchy();
IEnumerable<ITreeViewItemModel> GetChildren();
}
和
public class ComboBoxTreeView : ComboBox
{
private ExtendedTreeView _treeView;
private ContentPresenter _contentPresenter;
public ComboBoxTreeView()
{
this.DefaultStyleKey = typeof(ComboBoxTreeView);
}
...
我找到了这个http://vortexwolf.wordpress.com/2011/04/29/silverlight-combobox-with-treeview-inside/