Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 组合框IsEditable中断我的数据绑定_C#_Wpf_Data Binding - Fatal编程技术网

C# 组合框IsEditable中断我的数据绑定

C# 组合框IsEditable中断我的数据绑定,c#,wpf,data-binding,C#,Wpf,Data Binding,我有一个组合框,其中包含一个可观察集合的项目源 listSites = new ObservableCollection<SiteData>() { new SiteData("Site 1", true, "HomeAutomation", "Green"), new SiteData("Site 2", true, "HomeAutomation", "Green"), new SiteDat

我有一个组合框,其中包含一个可观察集合的项目源

listSites = new ObservableCollection<SiteData>()
        {
            new SiteData("Site 1", true, "HomeAutomation", "Green"),
            new SiteData("Site 2", true, "HomeAutomation", "Green"),
            new SiteData("Site 3", true, "HomeAutomation", "Green"),
            new SiteData("Site 4", false, "HomeAlert", "Red"),
            new SiteData("Site 5", true, "HomeAutomation", "Green"),
            new SiteData("Site 6", true, "HomeAutomation", "Green"),
            new SiteData("Site 7", true, "HomeAutomation", "Green"),
            new SiteData("Site 8", false, "HomeAlert", "Red"),
            new SiteData("Site 9", true, "HomeAutomation", "Green"),
            new SiteData("Site 10", false, "HomeAlert", "Red"),
        };
        cbxSites.ItemsSource = listSites;
listSites=新的ObservableCollection()
{
新站点数据(“站点1”,正确,“家庭自动化”,“绿色”),
新站点数据(“站点2”,正确,“家庭自动化”,“绿色”),
新站点数据(“站点3”,正确,“家庭自动化”,“绿色”),
新站点数据(“站点4”,错误,“HomeAlert”,“红色”),
新站点数据(“站点5”,正确,“家庭自动化”,“绿色”),
新站点数据(“站点6”,正确,“家庭自动化”,“绿色”),
新站点数据(“站点7”,正确,“家庭自动化”,“绿色”),
新站点数据(“站点8”,错误,“HomeAlert”,“红色”),
新站点数据(“站点9”,正确,“家庭自动化”,“绿色”),
新站点数据(“站点10”,错误,“HomeAlert”,“红色”),
};
cbxSites.ItemsSource=列表站点;
组合框还有一个静态资源的ItemTemplate:

<ComboBox x:Name="cbxSites" VerticalAlignment="Top" Width="250" Margin="0, 
0, 0, 0" BorderBrush="White"
                  ItemsSource="{Binding listSites}" ItemTemplate=" 
{StaticResource SiteComboBoxItemTemplate}" 
HorizontalContentAlignment="Center"
                      SelectionChanged="CbxSites_SelectionChanged" 
IsEditable="True" />


<DataTemplate x:Key="SiteComboBoxItemTemplate">
        <StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
            <materialDesign:PackIcon Kind="{Binding StatusIcon}" 
Width="30" Height="30" Foreground="{Binding StatusColour}"

VerticalAlignment="Center" HorizontalAlignment="Right" />
            <TextBlock Text="{Binding SiteName}" Margin="20, 0, 0, 0" />
        </StackPanel>
    </DataTemplate>


当组合框上的IsEditable设置为false时,绑定工作,我可以单击组合框并查看所有名称(站点1、站点2、站点3等),通过单击一个项目,它将在组合框中填充与预期相同的名称。当IsEditable为true时,组合框的下拉列表仍然正确显示站点名称(站点1、站点2、站点3等),但当我选择一个时,我看到的不是组合框中填充的站点的相同名称,而是“CipClient.SiteData”。这是为什么?我如何修复它?

WPF IsEditable=true填充对象的组合框将ToString()显示为选定项。 您可以修复此问题:

<ComboBox x:Name="cbxSites" VerticalAlignment="Top" Width="250" Margin="0, 0, 0, 0" BorderBrush="White"
                  ItemsSource="{Binding listSites}" IsTextSearchEnabled="True" TextSearch.TextPath="SiteName"  ItemTemplate="{StaticResource SiteComboBoxItemTemplate}" HorizontalContentAlignment="Center" SelectionChanged="CbxSites_SelectionChanged" 
IsEditable="true" />

WPF IsEditable=true组合框中填充了对象,将ToString()显示为选定项。 您可以修复此问题:

<ComboBox x:Name="cbxSites" VerticalAlignment="Top" Width="250" Margin="0, 0, 0, 0" BorderBrush="White"
                  ItemsSource="{Binding listSites}" IsTextSearchEnabled="True" TextSearch.TextPath="SiteName"  ItemTemplate="{StaticResource SiteComboBoxItemTemplate}" HorizontalContentAlignment="Center" SelectionChanged="CbxSites_SelectionChanged" 
IsEditable="true" />

你读过这些吗?也许这有帮助:你读过这些吗?也许这有帮助: