0
我已經在我的項目創造了這樣定義的用戶控件的節點列表:組合框綁定到用戶控件不顯示選定值
<UserControl x:Class="ProjectCrow.Node"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:ProjectCrow"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Border Name="border" BorderBrush="Black" BorderThickness="1">
<DockPanel LastChildFill="True" Background="AliceBlue" Height="45" Canvas.Top="90" Width="160" MouseRightButtonDown="OnNodeDeselect" MouseLeftButtonDown="OnNodeClick" >
<Border BorderBrush="Black" BorderThickness="1" DockPanel.Dock="Left">
<Image Name="img" />
</Border>
<Border BorderBrush="Black" BorderThickness="1" DockPanel.Dock="Bottom" Height="10" >
<TextBlock Name="protocol" VerticalAlignment="Center" Background="Gold" TextAlignment="Center" TextWrapping="Wrap"> FFI
</TextBlock>
</Border>
<Border BorderBrush="Black" BorderThickness="1" DockPanel.Dock="Top">
<TextBlock Name="nodeName" VerticalAlignment="Center" TextAlignment="Center" TextWrapping="Wrap">UNIT
</TextBlock>
</Border>
</DockPanel>
</Border>
我用了很多次,在我的應用程序。基本上它表示一個節點,具有一個定義的IP和端口,您可以從中獲取一些數據。
我創建了一個組合框,供用戶用來選擇從哪個源節點收集數據。我使用數據綁定來獲取當前可用節點的列表。
凡MainUI.mainWindow.Sources
是public ObservableCollection<Node> sources;
我會離開你也是我的部分節點類的實現
public partial class Node : UserControl
{
bool selected = false;
string name;
public string NameString
{
get { return name; }
set { if (name != value)
{
name = value;
NotifyPropertyChanged("NameString");
}
}
}
public virtual event PropertyChangedEventHandler PropertyChanged;
protected virtual void NotifyPropertyChanged(params string[] propertyNames)
{
if (PropertyChanged != null)
{
foreach (string propertyName in propertyNames) PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
PropertyChanged(this, new PropertyChangedEventArgs("HasError"));
}
}
public Node()
{
InitializeComponent();
}
組合框顯示正確所有目前可用的可能的節點,但如果我選擇了某些未被顯示的SelectedValue。
我該如何解決這個問題?
你試過'SelectedItem.Value' –
這可能是相關的: http://stackoverflow.com/a/2883923/4846465 –
不要將ComboBox綁定到UserControl的集合。而是將其綁定到數據項列表(即具有相關屬性的類),並將UserControl放置在ComboBox的ItemTemplate中。 ItemTemplate內部將UserControl的屬性綁定到項目屬性。從這裏開始閱讀:[數據模板概述](https://msdn.microsoft.com/en-us/library/ms742521(v = vs.100).aspx)。 – Clemens