我在设置XAML中的Binding / Path属性时遇到问题。
我知道这个ComboBox的ItemSource
属性正在正确更新,因为当我更新viewmodel
时,我得到了一堆空文本框(而不是带有文本的文本框,这是什么我期待)。
所以我相信我的ComboBox的DataTemplate
部分中的Binding需要一个不同的绑定路径,但我不确定如何设置绑定路径。
<ComboBox ItemsSource="{Binding Path=Locations}" Visibility="{Binding SettingsOptionsVisibility}" Grid.Column="0" x:Name="locationCB" VerticalAlignment="Top" SelectionChanged="locationCB_SelectionChanged" HorizontalAlignment="Left" Width="350" Height="30" IsHitTestVisible="False" IsEnabled="False" Focusable="False">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"></TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
以下是我的代码隐藏中观察列表中我的LocationCB项目源的图片: http://imgur.com/x4SYWER
正如所料,我的组合框中填充了8个(无文字)元素。我需要做什么才能将文本绑定到Name以进行连接?
编辑:ViewModel中的Locations对象的代码:
public ObservableCollection<Location> Locations { get; set; }
根据请求包含在observable集合中的Location类的代码:
public class Location
{
public Guid LocationID;
public Guid ParentID;
public String Name;
public bool isValid;
}
答案 0 :(得分:2)
将位置对象的字段更改为属性:
public class Location
{
public Guid LocationID { get; set; }
public Guid ParentID { get; set; }
public String Name { get; set; }
public bool isValid { get; set; }
}
答案 1 :(得分:1)
您应该绑定属性而不是变量。而不是
public string Name;
您应该将上述内容更改为
public string Name {get;set;}
更好的是,可以实现INotifyPropertyChanged ..