Autocompletebox文本在Silverlight
-
27-09-2019 - |
题
我有麻烦在System.Windows.Controls.Input工作自动完成框中如我所愿。当我开始输入下拉部,其显示过滤列表不显示我绑定属性,它显示的类名来代替。
因此在下面,我在我喜欢的类型的例子 - 而不是显示“我的名字”它显示MyNamespace.Person。然而,当我从自动完成列表中选择项目时,它会显示在文本框中的FullName属性。我敢肯定,我只是缺少一个简单的自动完成框属性的地方,但我无法看到它。
实施例的代码:
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string FullName
{
get { return string.Format("{0} {1}", FirstName, LastName); }
}
}
在我的XAML代码背后我创建一些Person对象以及那些列表存储在一个列表并绑定到一个自动完成框
List<Person> people = new List<Person>();
people.Add(new Person { FirstName = "My", LastName = "Name" });
people.Add(new Person { FirstName = "Fernando", LastName = "Torres" });
acbNames.ItemsSource = people;
我XAML:
<my:AutoCompleteBox Name="acbNames" ValueMemberPath="FullName" />
/ *后进入“我的”,自动完成显示“MyNamespace.Person”而不是“我的名字”,但显示“我的名字”从列表中选择该项目* /
后解决方案
原来我需要使用一个ItemTemplate用于AutoCompleteBox的下拉部分,所以它的XAML现在将如下所示:
<my:AutoCompleteBox Name="acbNames" ValueMemberBinding="{Binding FullName}">
<my:AutoCompleteBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding FullName}"/>
</DataTemplate>
</my:AutoCompleteBox.ItemTemplate>
</my:AutoCompleteBox>
其他提示
是的,你的问题是因为你没有把项目模板。 但是,如果你把项目模板,还是把问题读什么桑德罗wroted。
我有同样的问题。我解决它使用用于控制风格
静态资源这是我所使用的样式:
<Style x:Key="autocomplete" TargetType="sdk1:AutoCompleteBox">
<Setter Property="Margin" Value="5,0,5,0"/>
<Setter Property="MinWidth" Value="100"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property ="HorizontalAlignment" Value="Right"/>
</Style>
如果我不使用这种风格我海关项目无法正确显示在我的DataItem配置,而不是显示它的类名。
份额|修改
这对我的作品太多,但只有当我申请了一些自定义主题风格的工具包。 还有一些其他的解决办法,当您使用从工具箱主题
最佳,
debarisi
我有同样的问题。我解决它使用用于控制风格
静态资源这是我所使用的样式:
<Style x:Key="autocomplete" TargetType="sdk1:AutoCompleteBox">
<Setter Property="Margin" Value="5,0,5,0"/>
<Setter Property="MinWidth" Value="100"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property ="HorizontalAlignment" Value="Right"/>
</Style>
如果我不使用这种风格我海关项目无法正确显示在我的DataItem配置,而不是显示它的类名。
不隶属于 StackOverflow