我正在尝试将列表绑定到列表框。列表框绑定正在运行,但我无法将属性绑定到项模板。
这是我的班级
public class handle{
public string smurfName;
internal Process process;
public handle(Process _pro, string _smuf)
{
process = _pro;
smurfName = _smuf;
}
}
这是我的窗口构造函数。
public static ObservableCollection<handle> smurfList = new ObservableCollection<handle>();
public GameMask()
{
InitializeComponent();
runningSmurfs.ItemsSource = smurfList;
handle newSmurf = new handle(null, "THISNAME");
smurfList.Add(newSmurf);
}
这是我的xaml
<ListBox HorizontalAlignment="Left" Height="200" Margin="3,41,0,0" VerticalAlignment="Top" Width="113" Name="runningSmurfs">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=smurfName}"></TextBlock>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
不幸的是,我无法看到&#34; THISNAME&#34;在列表中,但如果我将Texblock Binding更改为文本,它可以正常工作。
感谢您的帮助。
答案 0 :(得分:2)
您至少需要一个属性,以便您的绑定可以正常工作。 smurfName应该是一个属性,如果你实现INotifyPropertyChanged也会更好。
答案 1 :(得分:1)
在你的情况下,我认为你不需要实现INotifyPropertyChanged,但是你不能绑定到你想要做的字段
试试这个:
UPDATE b2
SET Total = (
SELECT A.Total_1 + B.Total_2 + C.Total_3
FROM
(SELECT bill.quantity_1 * item.Price AS 'Total_1'
FROM bill, item
WHERE item.itemid = bill.item_1
AND bill.Orderid=b2.Orderid
)A,
(SELECT bill.quantity_2 * item.Price AS 'Total_2'
FROM bill, item
WHERE item.itemid = bill.item_2
AND bill.Orderid=b2.Orderid
)B,
(SELECT bill.quantity_3 * item.Price AS 'Total_3'
FROM bill, item
WHERE item.itemid = bill.item_3
AND bill.Orderid=b2.Orderid
)C
)
FROM Bill b2
并在xaml中更改与SmurfName的绑定
答案 2 :(得分:0)
在您的句柄类中,为您的smurfName
属性添加一个getter和setter:
public string smurfName { get; set; }