Android 我可以将Syncfusion SfTreeView的大小设置为动态吗?
我把SfTreeView放在一个SfExpander中,树视图在它下面占据了很多空间。[在这里输入图像描述][1] 我试着把它放进一个格子里,把高度设为“自动”,但没有成功。 [1] :Android 我可以将Syncfusion SfTreeView的大小设置为动态吗?,android,xamarin,xamarin.forms,treeview,syncfusion,Android,Xamarin,Xamarin.forms,Treeview,Syncfusion,我把SfTreeView放在一个SfExpander中,树视图在它下面占据了很多空间。[在这里输入图像描述][1] 我试着把它放进一个格子里,把高度设为“自动”,但没有成功。 [1] : 我们已经检查了报告的查询“如何设置动态高度”。我们想通知您,TreeView将加载视图大小。如果要自定义TreeView的高度,可以根据项目大小为TreeView设置HeightRequest。请参考以下代码片段以实现您的要求 Xaml:对SfTreeView使用EventToCommand行为对QueryN
我们已经检查了报告的查询“如何设置动态高度”。我们想通知您,TreeView将加载视图大小。如果要自定义TreeView的高度,可以根据项目大小为TreeView设置HeightRequest。请参考以下代码片段以实现您的要求
Xaml:对SfTreeView使用EventToCommand行为对QueryNodeSize事件使用命令。绑定TreeView的HeightRequest以基于节点更新TreeView高度
<syncfusion:SfTreeView x:Name="treeView"
ItemHeight="40"
HeightRequest="{Binding TreeViewHeight}"
ChildPropertyName="SubFiles"
ItemTemplateContextType="Node"
AutoExpandMode="AllNodesExpanded"
ItemsSource="{Binding ImageNodeInfo}"
BackgroundColor="Beige">
<syncfusion:SfTreeView.Behaviors>
<local:EventToCommandBehavior EventName="QueryNodeSize" Command="{Binding Path=BindingContext.QueryNodeSizeCommand, Source={x:Reference treeView}}"/>
</syncfusion:SfTreeView.Behaviors>
…
</syncfusion:SfTreeView>
ViewModel: Create Command with QueryNodeSizeEventArgs.
private double treeViewHeight = -1;
//Property to set TreeView height.
public double TreeViewHeight
{
get { return treeViewHeight; }
set
{
treeViewHeight = value;
this.RaisedOnPropertyChanged("TreeViewHeight");
}
}
//Command for QueryNodeSize event.
public Command<QueryNodeSizeEventArgs> QueryNodeSizeCommand { get; set; }
public FileManagerViewModel()
{
//Initialize the command.
QueryNodeSizeCommand = new Command<QueryNodeSizeEventArgs>(QueryNodeSizeMethod);
}
/// <summary>
/// Command method to calculate the TreeView height.
/// </summary>
/// <param name="args">Argument which holds the information of the node.</param>
private void QueryNodeSizeMethod(QueryNodeSizeEventArgs args)
{
var item = args.Node.Content as FileManager;
if (!item.IsHandled)
{
this.TreeViewHeight += args.Height;
item.IsHandled = true;
}
}
…
ViewModel:使用QueryNodeSizeEventArgs创建命令。
私有双树视图=-1;
//属性设置树视图高度。
公共双树景
{
获取{return treeViewHeight;}
设置
{
treeViewHeight=值;
此项。提高的不动产变更(“TreeViewHeight”);
}
}
//QueryNodeSize事件的命令。
公共命令QueryNodeSizeCommand{get;set;}
公共文件管理器viewmodel()
{
//初始化命令。
QueryNodeSizeCommand=新命令(QueryNodeSizeMethod);
}
///
///用于计算树视图高度的命令方法。
///
///保存节点信息的参数。
私有void QueryNodeSizeMethod(QueryNodeSizeEventArgs参数)
{
var item=args.Node.Content作为文件管理器;
如果(!item.IsHandled)
{
this.TreeViewHeight+=参数高度;
item.IsHandled=真;
}
}
根据你方要求,我方已附上可行的样品。您可以从以下链接找到它们
样本:
问候,,
SaiGanesh Sakthivel向我们展示树视图的视图。我链接了一张图片,你能打开它吗?代码在哪里?我共享了代码,抱歉。
<syncfusion:SfTreeView x:Name="treeView"
ItemHeight="40"
HeightRequest="{Binding TreeViewHeight}"
ChildPropertyName="SubFiles"
ItemTemplateContextType="Node"
AutoExpandMode="AllNodesExpanded"
ItemsSource="{Binding ImageNodeInfo}"
BackgroundColor="Beige">
<syncfusion:SfTreeView.Behaviors>
<local:EventToCommandBehavior EventName="QueryNodeSize" Command="{Binding Path=BindingContext.QueryNodeSizeCommand, Source={x:Reference treeView}}"/>
</syncfusion:SfTreeView.Behaviors>
…
</syncfusion:SfTreeView>
ViewModel: Create Command with QueryNodeSizeEventArgs.
private double treeViewHeight = -1;
//Property to set TreeView height.
public double TreeViewHeight
{
get { return treeViewHeight; }
set
{
treeViewHeight = value;
this.RaisedOnPropertyChanged("TreeViewHeight");
}
}
//Command for QueryNodeSize event.
public Command<QueryNodeSizeEventArgs> QueryNodeSizeCommand { get; set; }
public FileManagerViewModel()
{
//Initialize the command.
QueryNodeSizeCommand = new Command<QueryNodeSizeEventArgs>(QueryNodeSizeMethod);
}
/// <summary>
/// Command method to calculate the TreeView height.
/// </summary>
/// <param name="args">Argument which holds the information of the node.</param>
private void QueryNodeSizeMethod(QueryNodeSizeEventArgs args)
{
var item = args.Node.Content as FileManager;
if (!item.IsHandled)
{
this.TreeViewHeight += args.Height;
item.IsHandled = true;
}
}